【问题标题】:powershell command parameter with spaces带空格的powershell命令参数
【发布时间】: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


【解决方案1】:

您是否尝试过使用转义的双引号?

call powershell -ExecutionPolicy Bypass -command ".\build.ps1 ^"%arg1%^"; exit $LASTEXITCODE"

也许您必须先删除其他引号:

set "arg1=%arg1:'=%"

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 2014-09-28
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    相关资源
    最近更新 更多