我正在创建一个 Powershell 脚本来部署一些代码,该过程的一部分是调用一个名为 RAR.EXE 的命令行压缩工具来备份一些文件夹。
我正在尝试动态构建参数,然后让 powershell 使用变量调用命令,但我遇到了麻烦。它不工作...
运行以下脚本,您应该会看到我在说什么。作为变量传入的参数正在被破坏。如果我在其中传递整个命令 + 参数,我会收到臭名昭著的“不被识别为 cmdlet ...”消息。
谢谢你的帮助!
echo "this should succeed"
& cmd /c echo foo
echo "why does this echo out an additional double quote?"
$param = "/c echo foo"
& cmd "$param"
echo "this does the same"
$param = "/c echo foo"
& cmd $param
echo "escaping the slash doesn't work either..."
$param = "`/c echo foo"
& cmd $param
echo "this fails, but why?"
$cmd = "cmd /c echo foo"
&$cmd