我在Powershell中有以下脚本ISE。Powershell ISE“路径中的非法字符”当管道路径到测试路径?
cd E:\Data
@"
xxxx.zip
yyyy.zip
"@ -split "`n" | % { echo "'$_'"; test-path -path "$_" -EA Stop }
但是它总是会引起错误。
'xxxx.ZIP'
False
Illegal characters in path.
At line:175 char:27
+ % { echo "'$_'"; test-path <<<< -path "$_" -EA Stop }
+ CategoryInfo : InvalidArgument: (E:\Data\xxxx.ZIP:String) [Test-Path], ArgumentException
+ FullyQualifiedErrorId : ItemExistsArgumentError,Microsoft.PowerShell.Commands.TestPathCommand
不过,我可以运行Test-Path -path xxxx.zip
或脚本只是硬编码“xxxx.zip”,它运行良好。管道的问题是什么?
更新
如果我改变的最后一个脚本% { echo "'$_'"; "test-path -path $_ -EA Stop" }
和复制/粘贴输出(“test-path -path xxxx.ZIP -EA Stop
”)的命令行。有用。
更新
看来它在PowerShell控制台。 ISE错误?
谢谢,这种差异真的很烦人。可以'-split'接受正则表达式,因此它可以在两种环境下工作吗? – ca9163d9 2012-01-06 23:05:35
@NicW是的,检查我的更新回答 – mjsr 2012-01-06 23:44:51
@NickW是的,它可以。我在我的答案中举了一个例子。乔恩做了所有的辛勤工作,所以他应该在这里接受答案,但随时可以upvote ;-) – 2012-01-06 23:49:43