【发布时间】:2018-05-22 09:21:42
【问题描述】:
我正在尝试使用批处理文件中的 -command 参数调用 powershell 脚本。 powershell 脚本接受一个可能包含空格的参数。该命令无法接受带空格的参数。
这是批处理文件。
@echo off
set arg1=%*
call powershell.exe -ExecutionPolicy Bypass -command ".\build.ps1 %arg1%; exit $LASTEXITCODE"
exit /b %ERRORLEVEL%
这就是批处理文件的调用方式 - .\build.bat '-testToolPath=as sdaf'
我使用-command 而不是-file 只是为了返回LASTEXITCODE
【问题讨论】:
-
无法在移动设备上进行测试,但将路径用双引号括起来可能会对其进行排序:
".\build.ps1 `"%arg1%`"; exit $LASTEXITCODE" -
为什么不直接使用参数执行 powershell 脚本,而不是尝试将参数传递给批处理文件以传递给 Powershell 脚本?
-
批处理文件做了很多其他的事情,这只是一个子集。
-
你试过单引号和双引号吗?
".\build.ps1 '%arg1%'; exit $LASTEXITCODE"或'.\build.ps1 "%arg1%"; exit $LASTEXITCODE' -
是的,我都试过了,但没有运气。
标签: powershell batch-file command-line command-line-arguments