У меня есть следующий скрипт в 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?