我有一个封装的 Windows 10 Kiosk 系统,可在外部 USB 存储设备 (NTFS) 上创建/提供报告。遗憾的是,关于这个系统我能说的不多,因为它被束缚得相当紧。
当我将该 USB 存储设备放在另一个 Windows 系统(Windows 10 Pro 19044.1387)上进行复制/备份时,我遇到了一些问题。
所有图片文件都存储在报告子文件夹 (images) 中的一个文件夹中。当尝试将此文件夹复制到新位置(该位置没有任何珍贵文件)时,Windows 提示我选择如何处理覆盖现有文件。不应该有任何文件!
查看源文件夹,我发现确实有一些文件具有相同的名称。例如多个“Image-1.jpg”文件。这些文件的内容在视觉上都不同。这些文件中没有带计数的括号“()”。
我最初怀疑是复制品删除了隐藏的控制字符,导致出现重复,但我无法识别这些字符。并不是说不是这样,我只是无法轻易识别这些字符。
但是现在我无法复制完整的报告。
我还有什么选择可以复制/备份此报告并保留具有相同名称的重复文件?我可以强制 Windows 在同一文件夹中创建另一个具有相同名称的文件吗?
更新:
我找到了隐藏的字符。原来是前导“ ”(空格)。一个文件名为“Image-1.jpg”,另一个文件名为“Image-1.jpg”,Windows 副本肯定删除了前导空格,导致名称中不存在冲突。(假设文件名可能以前导空格开头)
我刚刚尝试从 Windows 创建一个 txt 文件,它不允许您创建带有前导空格的文件,但您可以从 cmd/dos 提示符中创建。$ echo abc >" my file.txt" 创建一个带有前导空格的文件,可以从文件资源管理器中查看。
在 Windows 文件资源管理器中,您无法重命名并删除前导空格,因为它声称文件名相同。您必须为其完全赋予一个新名称,然后将其改回原始名称(减去前导空格)。
因此,我猜测 Windows 复制会删除隐藏字符是正确的。带有前导空格的文件名与不带该空格的相同文件名匹配,因此如果在复制该文件夹时两个文件名都位于同一个文件夹中,则它们会相互冲突。
使用以下 dos 命令来测试此问题:
$ mkdir "test"
$ cd test
$ echo "abc" >"file1.txt"
$ echo "def" >" file1.txt"
然后使用文件资源管理器复制测试文件夹,您将看到它重命名了其中一个文件。但是,只有在没有其他与“-复制”冲突的情况下,它才会自动重命名该文件。如果有冲突,系统会提示您该怎么做。
答案1
您似乎遇到了文件资源管理器错误。但是,PowerShell 7.x 和 Windows PowerShell 似乎没有此错误。
我在桌面上创建了一个“Test”文件夹,其中包含两个文件:“ 1.jpg
”和“ 1.jpg
”。然后,我使用以下命令将“Test”的内容复制到“Test2”中:
Set-Location '~\Desktop'
Copy-Item 'Test\*' 'Test2'