Powershell和作为参数的路径是双重的

我有一个简单的PS脚本,需要接受恰好是目录路径的参数。 我得到这个路径给我,并调用ps脚本如下:

powershell.exe -ExecutionPolicy Bypass -F "C:tempctestlogging testpostinstall.ps1" "C:tempctestlogging test"

我无法控制将''添加到此脚本参数的路径中,并且必须使用双引号才能解释路径中的空间。 所以,我结束的是我的ps脚本中的一个变量,它是字符串:

C:tempctestlogging test"     <<-- error in path!  with the double-quote char. :(

我的问题很简单,我希望,但是我找不到解决问题的人。 有没有办法告诉powershell不要逃避这种情况下的最后一个双引号?

谢谢你的时间,并教育我。


这个问题看起来只有在从CMD调用时才会出现。 在你的脚本中你可以这样做:

$args[0].TrimEnd('"')

它会删除尾随的双引号(如果存在)。

或者你可以将反斜杠翻倍:

C:>powershell.exe -f C:echo.ps1 "C:tempctestlogging test"

echo.ps1的内容

Write-Host ('"{0}"' -f $args[0])

尝试像这样:

powershell.exe -ExecutionPolicy Bypass -F 'C:tempctestlogging testpostinstall.ps1' 'C:tempctestlogging test'

您是否在您的调用中尝试过单引号?

链接地址: http://www.djcxy.com/p/10485.html

上一篇: Powershell and a path as an argument that is double

下一篇: Fiducial marker detection in the presence of camera shake