如何向路径含空格的PowerShell脚本传递管道输入与参数?
解决路径含空格的PowerShell脚本跨目录调用问题
当脚本路径包含空格时,直接用引号包裹路径无法让PowerShell识别为可执行脚本,必须借助**调用操作符&**来执行,同时不影响管道输入和参数传递。
正确的命令写法
Get-ChildItem | & 'D:\My Documents\PowerShell\My-Script.ps1' -MyParam 1 -OtherParam 'Test'
其他可选方式
- 转义路径中的空格:用反引号
`转义空格,无需额外操作符,但可读性稍差:
Get-ChildItem | D:\My` Documents\PowerShell\My-Script.ps1 -MyParam 1 -OtherParam 'Test'
- 将脚本目录加入环境变量:如果需要频繁调用该脚本,可将其所在目录添加到
$env:Path,之后直接用脚本名调用:
# 临时生效(仅当前PowerShell会话) $env:Path += ';D:\My Documents\PowerShell' # 之后直接调用脚本 Get-ChildItem | My-Script.ps1 -MyParam 1 -OtherParam 'Test'
如果需要永久生效,可通过系统设置修改Path环境变量,将脚本目录添加进去。
内容的提问来源于stack exchange,提问作者AxD
相关产品推荐
相关产品推荐

