Запустите Veracrypt из PowerShell
Я пытаюсь запустить следующую команду из сценария powershell.
"C:\Program Files\VeraCrypt\VeraCrypt Format-x86.exe" /create "C:\test veracrypt file.hc" /password alongpasswordisagoodpassword /hash sha512 /encryption serpent /filesystem NTFS /size 100G /dynamic /force /silent
Я пытался использовать
& cmd.exe ""C:\Program Files\VeraCrypt\VeraCrypt Format-x86.exe" /create "C:\test veracrypt file.hc" /password alongpasswordisagoodpassword /hash sha512 /encryption serpent /filesystem NTFS /size 100G /dynamic /force /silent"
А также
$command = @'
& cmd.exe ""C:\Program Files\VeraCrypt\VeraCrypt Format-x86.exe" /create "C:\test veracrypt file.hc" /password
alongpasswordisagoodpassword /hash sha512 /encryption serpent /filesystem NTFS /size 100G /dynamic /force /silent"
'@
Invoke-Expression -Command:$command
Что бы я ни делал, я получаю ошибку:
cmd.exe: "reate" не распознается как внутренняя или внешняя команда,
'Reate' не является опечаткой, c из create фактически удаляется в сообщении об ошибке. Я пытался избежать создания или вставить в кавычки, но он продолжает выдавать мне ту же ошибку.
Я также попытался поместить команду в файл bat и вызвать ее, но кажется, что она зависает, ничего не делая, хотя запуск файла bat работает, как и ожидалось.
Я новичок в powershell и подозреваю, что упускаю что-то очевидное. Что мне не хватает?
2 ответа
Вы должны просто иметь возможность использовать оператор вызова &
запустить команду напрямую без использования cmd:
& "C:\Program Files\VeraCrypt\VeraCrypt Format-x86.exe" /create "C:\test veracrypt file.hc" /password alongpasswordisagoodpassword /hash sha512 /encryption serpent /filesystem NTFS /size 100G /dynamic /force /silent
&
Оператор звонкаЗапускает команду, скрипт или блок скрипта. Оператор вызова, также известный как "оператор вызова", позволяет запускать команды, которые хранятся в переменных и представлены строками. Поскольку оператор вызова не анализирует команду, он не может интерпретировать параметры команды.
На всякий случай еще один способ сделать это, который, наконец, сработал для меня:
start-process -FilePath "C:\Program Files\VeraCrypt\VeraCrypt Format-x86.exe" -ArgumentList @("/create", "C:\test veracrypt file.hc", "/password alongpasswordisagoodpassword", "/hash sha512", "/encryption serpent", "/filesystem NTFS", "/size 100G", "/dynamic", "/force", "/silent")