.Bat xcopy-特殊字符

.Bat xcopy-特殊字符

这是我的文件的代码.bat

@echo off
xcopy "C:\Users\Administrator\věc" "C:\věc"  /e /i /h
echo Done
pause

但是它说:File not found - výc。请参阅ěchar 更改为ý

为什么会这样?谢谢

编辑:我正在尝试复制目录,而不是文件

答案1

一个选项是使用通配符来表示您的位置:

xcopy "C:\Users\Administrator\v*c" "C:\v*c"  /e /i /h

它可能不是理想的,但在某些条件下它可以起作用。

  1. 没有其他文件夹可以匹配表达式“v(任意字符)c”(例如 vehdgthc),这在 src 和 dest 中都是正确的。

  2. 对于目标来说,c 上的目录已经存在。

答案2

问题在于 bat 文件的解释。我生成的命令在命令行模式下有效,但在 bat 文件中无效。这不是 Ansi 或 unicodes 的问题,因为我可以复制并粘贴到命令解释器中,而且它工作得很好。不幸的是,bat 文件解释的规则似乎没有明确记录。

答案3

这是由于 unicode 以及特殊字符的显示方式所致。例如,Unicode 字符在记事本和写字板中的显示方式会有所不同。

在您的情况下,似乎这个特殊字符会混淆 XCopy 命令并使其认为它是一个文件而不是一个文件夹。

如果可以的话,将其改为 e,然后再试一次。我知道这不是理想的选择,因为你必须创建一个新词,但这应该可行。如果可行,那么你就知道问题出在字符上,如果不是,那么显然你需要进一步调查。

编辑

我无法测试这个,但你可以尝试 Robocopy(不确定你使用的是什么操作系统)

robocopy" C:\Users\Administrator\věc" "C:\věc"

编辑2

或者,问题是你的机器没有显示你文件扩展名,所以你认为你的文件是věc。这不太可能!你的文件应该是名称点扩展名

例如

věc.txt or věc.pdf

答案4

在您的编辑器中,确保您使用 Ansi 编码,而不是 OEM。

相关内容