如何复制名称中包含 | 的文件?

如何复制名称中包含 | 的文件?

在 Windows 7 中,我无法复制|名称中包含的文件。出现错误Can not find the file。我有大约 30GB 的文件,所有文件都包含该字符。知道如何将它们复制到另一个 NTFS 分区吗?

答案1

命令行是你的朋友。

打开CMDCD转到文件所在位置。

输入后dir /X,它将向您显示带有 等的旧 DOS 8.3 名称~1以及~2长文件名。

然后您可以使用 8.3 名称进行复制/重命名

重命名时可以混合使用 8.3 和长文件名:

ren THISIS~1.TXT "this is renamed.txt"将工作

在此处输入图片描述

答案2

前缀\\?\告诉 Windows 您的路径完全没问题,您不想对其进行任何处理。这意味着它不太宽容。例如dir "\\?\C:"不起作用。正确的路径是dir "\\?\C:\"

这应该可以帮助您绕过使用 NTFS 文件名的限制|。但是,您仍应引用文件名,以便 CMD.EXE 不会解释|

答案3

文件名中的无效字符很快就会引发问题。我建议您重命名所有文件以避免进一步的问题。

这应该可行(但未经测试):

  1. 下载Ubuntu并刻录 Live CD。

  2. 从 Live CD 启动。

  3. 打开终端,转到包含奇数文件的文件夹并执行

    find . | grep "|" | awk '{ OLD=$0; gsub(/\|/, "_"); print "mv \"" OLD "\" \"" $0 "\"" }' | sh
    

这应该将所有|s 替换为_s。

答案4

我原本想和丹尼斯提同样的建议。有很多应用程序适用于 Windows但我不知道他们如何更好地重命名带有“无效”字符的文件。

相关内容