【问题标题】:Get-ChildItem - Cannot find pathGet-ChildItem - 找不到路径
【发布时间】: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'
  • 我设置变量时出现双斜杠,并在错误消息后显示。它们只是在错误消息中丢失。第一个斜杠被解释为转义字符还是什么?

标签: powershell get-childitem


【解决方案1】:

双引号要求 PowerShell 评估字符串。试试这个(不带双引号):

$SPath = '\\MHRZRSEFS501\F$\NewSkies FileShares\FRBatch$\Test\Test.txt'

【讨论】:

  • 成功了!由于路径中间嵌入了空白,我会赌钱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2019-09-28
  • 2020-12-12
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多