Batch file 批量操作带有重音符号的路径
我知道这是一个常见的问题,但我仍然无法解决 我有下面的批处理脚本,读取存储在文本文件中的路径和文件名,但我不断收到错误的口音Batch file 批量操作带有重音符号的路径,batch-file,utf-8,character-encoding,non-ascii-characters,Batch File,Utf 8,Character Encoding,Non Ascii Characters,我知道这是一个常见的问题,但我仍然无法解决 我有下面的批处理脚本,读取存储在文本文件中的路径和文件名,但我不断收到错误的口音 @echo off CHCP 1252 FOR /F "tokens=*" %%i IN (names.txt) DO ( FOR /F "tokens=1,2,3,4 delims=;" %%j IN (paths.txt) DO ( IF %%i==%%l ( copy /-Y "%%j" %cd%
@echo off
CHCP 1252
FOR /F "tokens=*" %%i IN (names.txt) DO (
FOR /F "tokens=1,2,3,4 delims=;" %%j IN (paths.txt) DO (
IF %%i==%%l (
copy /-Y "%%j" %cd%
ren "%%k" "%%l"."%%m"
)
)
)
我尝试使用和不使用CHCP行,用UTF-8、AINSI、DOS 850对每个文件进行编码,但都不起作用。使用
CHCP 65001
,UTF-8
文本文件进行编码。必须将控制台字体更改为Lucida console。调试提示:尝试@echo ON
和前缀CHCP
和所有FOR
,将@
符号显示为@CHCP
和@FOR
,但让IF
和复制和ren
在冗余模式下,而不使用
查看到底发生了什么。(可能在IF
之前添加@echo%%i==%%l
)我之前已经通过删除@echo off
看到了一切,但我仍然无法理解这是如何工作的。假设该文件是“Détective”(法语),它将从两个文件(names.txt和path.txt)中读取“Détective”,但稍后将无法找到该文件,因为路径将被损坏。公然的mojibake案例。阅读使用的CHCP 1252
应该与ANSI
编码文件相对应。我了解全局的想法,但不了解解决方案。我用UTF-8
文件尝试了CHCP 65001
,用ANSI
文件尝试了CHCP 1252
,但正如你所说,它没有帮助。你能告诉我做这件事的正确方法吗?请不要告诉我要避免使用重音符号,一定有办法使用它们。。。