在文件路径中运行带有空格的 PowerShell 脚本

Posted

技术标签:

【中文标题】在文件路径中运行带有空格的 PowerShell 脚本【英文标题】:Run PowerShell script with spaces in the file path 【发布时间】:2021-11-22 22:19:45 【问题描述】:

如果变量 !batDir! 包含空格,我无法使以下批处理代码工作,例如W:\scripts windows\:

if /I "!i!" GTR "1" (
        Powershell "!batDir!ript.ps1 !test! '!testWithSpaces!' "
        goto :scriptEnd
)

W:\scripts : The term 'W:\scripts' is not recognized as the name of a cmdlet, function, script file, or operable
program.

【问题讨论】:

您是否尝试过'!batDir!ript.ps1',即文件路径周围的单引号,例如'!testWithSpaces!' 然后我得到一个错误Unexpected token '-filter' in expression or statement.变量!test!是-过滤器。 我认为这意味着路径已经合格。我建议先echo 表达式,然后再将其传递给 Powershell 进行调试。 Powershell "'W:\scrips windows\ript.ps1' -filter 'unity*' " 请参阅this 从 CMD 运行 PS。 【参考方案1】:

您需要在 & 中使用引号。

Powershell "& '!batDir!ript.ps1' !test! '!testWithSpaces!' "

https://newbedev.com/how-to-run-a-powershell-script-with-white-spaces-in-path-from-command-line

【讨论】:

以上是关于在文件路径中运行带有空格的 PowerShell 脚本的主要内容,如果未能解决你的问题,请参考以下文章

powershell 一个ps1 运行

执行一个powershell文件,其中包含空格的绝对路径

路径中的.cmd与.ps1

带有路径的Powershell foreach找不到文件

如何将带有空格的路径作为参数添加到 CreateProcess 批处理文件?

Windows PowerShell adb : 无法将“adb”项识别为 cmdlet函数脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行