我正在尝试从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”不是一个错误,实际上在错误消息中删除了create中的c。我尝试过逃避create,或者输入引号,但是它总是给我带来同样的错误。
我还尝试将命令放入bat文件中并调用它,但这似乎没有执行任何操作,即使运行bat文件的效果与预期相同。
我刚接触过powershell,怀疑我遗漏了一些显而易见的东西。我遗漏了什么?
发布于 2018-09-04 09:38:14
您应该能够使用call运算符&直接运行命令,而无需使用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来自运算符
&呼叫算子 运行命令、脚本或脚本块。调用操作符(也称为“调用操作符”)允许您运行存储在变量中并由字符串表示的命令。因为call运算符不解析命令,所以它无法解释命令参数。
发布于 2020-12-20 08:15:10
以防万一,另一种对我起作用的方法是:
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")
https://stackoverflow.com/questions/52162714
复制相似问题