【发布时间】:2019-05-19 02:35:02
【问题描述】:
路径为变量时Get-ChildItem出错
这行得通:
PS D:\DMH> Get-ChildItem -Path '\\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'
Directory: \\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/19/2019 2:45 AM 18 Test.txt
但如果我将路径放入变量中,它就不起作用:
PS D:\DMH> $SPath = "'\\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'"
Get-ChildItem -Path $SPath
Write-Host "SPath =$SPath"
Get-ChildItem : Cannot find path 'D:\DMH\'\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'' because it does not exist.
***
SPath ='\\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'
D:\DMH\ 显然是我启动 PowerShell 的目录,但它是如何进入命令路径的?
【问题讨论】:
-
如果你没有给出绝对路径,它会将 ur 变量中的路径附加到当前工作目录中。因此,您最终会这样做。另外,您的路径中还有一个 `\'\`。
-
修改你的路径,在前面加上一个双斜杠,告诉解释器它是一个 UNC 路径。 '\\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'
-
我设置变量时出现双斜杠,并在错误消息后显示。它们只是在错误消息中丢失。第一个斜杠被解释为转义字符还是什么?