从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\"'"
答案 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)