命令提示符powershell命令提升批处理文件的传递参数

时间:2019-02-13 22:11:11

标签: powershell cmd runas elevation

从cmd中,我正在使用powershell命令提升批处理脚本并将其参数传递给它。这些参数包含双引号,但我不知道为什么它不起作用。

这是我的命令:

powershell -command "Start-Process -FilePath 'C:\My Path\update.bat' -ArgumentList '\"My File.zip\"'"

上面的命令运行良好,我的批处理脚本使用双引号将参数接收,但是当我使用-Verb Runas将命令更改为高程时,这是我遇到的问题(批处理脚本打开,但立即关闭):

powershell -command "Start-Process -Verb Runas -FilePath 'C:\My Path\update.bat' -ArgumentList '\"My File.zip\"'"

1 个答案:

答案 0 :(得分:0)

最终解决方案源自上述@Compo的响应。此解决方案对我有用,并在批处理脚本的路径中也包含空格时进行处理。

set "Args=%*"
net file 1>nul 2>&1 || (powershell -Command ^
Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c \""\""%~f0\"" %Args:"=\""%\""'
goto :eof)