这是我的文件的代码.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
它可能不是理想的,但在某些条件下它可以起作用。
没有其他文件夹可以匹配表达式“v(任意字符)c”(例如 vehdgthc),这在 src 和 dest 中都是正确的。
对于目标来说,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。