基本上我想传递命令<command>
,就像它们是在 powershell 会话中执行的一样PS >
,以便由CreateProcess
powershell -Command <command>
上述方法并非在所有情况下都有效。例如,以下方法无效
powershell -Command gci "C:\Program Files"
但这有效
powershell -Command choco -v
答案1
powershell
使用脚本块语法检查传递的有效命令{}
如下:
powershell -Command {gci "C:\Program Files"}
gci C:\Program Files
看来cmd
解释器吃掉 双引号。因此,你需要逃脱字符串里面的空格C:\Program Files
,例如如下:
powershell -Command gci "C:\Program` Files" # using backtick
或使用引号(以下任何命令行都可以):
powershell -Command gci """C:\Program Files""" # inner double quotes
powershell -Command gci "'C:\Program Files'" # inner single quotes
powershell -Command gci 'C:\Program Files' # single quotes