如何像在 powershell REPL 中执行一样执行语句

如何像在 powershell REPL 中执行一样执行语句

基本上我想传递命令<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

相关内容