在Windows中删除包含无效字符的文件

在Windows中删除包含无效字符的文件

我有一些文件名中包含冒号的文件(例如 1d67c0d23e859ed4a259749e4a720d9e:default-sink)。当我尝试使用以下命令从命令行删除它们时:

c:\backup> del /F *.*

对于每个文件,我都会收到“系统找不到指定的文件。”。如果我指定单个文件:

c:\backup> del /F "1d67c0d23e859ed4a259749e4a720d9e:default-sink"

我收到“文件名、目录名或卷标语法不正确。”。如果我尝试在父文件夹上使用 rd,我会收到

我怎样才能删除这些文件?

答案1

有一篇 Microsoft KB 文章列出了删除此类文件的可能方法:

http://support.microsoft.com/kb/320081

我通常使用的方式是原生API方法:

del "\\?\c:\path\1d67c0d23e859ed4a259749e4a720d9e:default-sink"

根据:

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

:NTFS 上的保留字符,上面我提到的本机 API 方法是删除此类文件的推荐方法。

答案2

我想您可以尝试一下 8.3 这个名字?

del /F 1d67c0~1

请注意,在 NTFS 驱动器上,您可以明确禁用 8.3 功能,因此如果是这种情况,您就没有这个选项了。要获取文件名 dir adir /x

以前有一款免费软件工具,delinvfile但他们已经将其改为共享软件/付费

答案3

这对我有用:

  1. chkdsk /f
  2. 重新启动电脑
  3. 然后我就可以选择并删除该文件

答案4

7zip可以删除 Windows 无法删除的文件;我过去在处理过长的文件名时使用过它,但我从未尝试过在带有冒号的文件上使用它。它们通常用于表示 ADS。

相关内容