路径中的Get-ChildItem尾随空格

时间:2017-02-09 11:05:07

标签: powershell

我的文件共享上有一个文件夹,其中有一个尾随引导。我不能因为爱我而得到Get-ChildItem的内容。

Get-ChildItem "\\fileshare\Projects\Videos\208 "
Get-ChildItem "\\fileshare\Projects\Videos\208` "
Get-ChildItem -LiteralPath "\\fileshare\Projects\Videos\208 "

它表示指定的路径不存在......

我该怎么做?

3 个答案:

答案 0 :(得分:1)

尝试在资源管理器中自己创建一个带有尾随空格的文件夹 - 您会发现无法在资源管理器中删除尾随空格。这是因为具有尾随空格的文件/文件夹在Win32名称空间中是无效的名称。

PowerShell还从文件夹名称中剥离尾随空格(与资源管理器相同),这意味着该命令随后尝试针对不存在的文件夹运行,因此“路径不存在”错误。

请参阅You cannot delete a file or a folder on an NTFS file system volume中的原因6,因为这涵盖了无效的命名空间。 (该文章引用了Windows XP,但与使用NTFS文件系统的任何Windows操作系统相关)

PowerShell可能无法读取此文件夹,除非您使用文章提到的解决方法\\?\c:\path_to_problem_file

您应该删除或重命名此文件夹,因为它将来会给您带来进一步的问题。

答案 1 :(得分:1)

只需添加一个尾随反斜杠......就像这样:

Get-ChildItem -LiteralPath "\\fileshare\Projects\Videos\208 \"

额外信息:

可能不是空格而是“ Alt + 255 ”字符 如果在扩展的ascii表中搜索255个字符,您将找到一个看起来像空格但行为不像空格的字符。

正如人们所指出的那样,无法创建一个带尾随空格的文件夹,但可以创建一个尾随“ Alt + 255 ”字符的文件夹。

答案 2 :(得分:0)

您需要在以下情况下使用通配符:

Get-ChildItem "\\fileshare\Projects\Videos\208*"

我只是假设,但' \ fileshare'位于OS X或Mac OS上,它允许文件夹结构中的空格。