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
,但正如你所说,它没有帮助。你能告诉我做这件事的正确方法吗?请不要告诉我要避免使用重音符号,一定有办法使用它们。。。