我尝试将 CD 放入一个文件夹,但一直收到以下错误消息。
PS A:\> cd "A:\Test\[Folder]\Folder1"
cd : Cannot find path 'A:\Test\[Folder]\Folder1' because it does not exist.
At line:1 char:1
+ cd "A:\Test\[Folder]\Folder1"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (A:\Test\[Folder]\Folder1:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
PS A:\> Set-Location "A:\Test\[Folder]\Folder1"
Set-Location : Cannot find path 'A:\Test\[Folder]\Folder1' because it does not exist.
At line:1 char:1
+ Set-Location "A:\Test\[Folder]\Folder1"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (A:\Test\[Folder]\Folder1:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
此位置确实存在,我可以浏览到它而不会出现任何错误。如果它有 [],我无法将 CD 放入任何文件夹
答案1
大多数 PowerShell cmdlet 通过名为 的默认参数接收通配符模式-Path
。这同样适用于Set-Location
这是cd
别名所映射的内容。由于[]
是通配符模式,因此它不会更改为所需的文件夹。您需要使用-LiteralPath
将路径视为文字字符串
-LiteralPath
指定位置的路径。LiteralPath 参数的值按键入的方式使用。没有字符被解释为通配符。如果路径包含转义符,请将其括在单引号中。单引号告诉 PowerShell 不要将任何字符解释为转义序列。
转义通配符也可以,但不太方便。因此只需使用
cd -LiteralPath "A:\Test\[Folder]\Folder1"
事实上-LiteralPath
也可以用于其他 cmdlet
答案2
我尝试了下面的代码片段并且它有效。
cd 'A:\Test\`[Folder`]\Folder1'
答案3
而不是做
cd [Folder]
做
cd ``[Folder``]