1
我知道这是一个常见问题,但我仍然无法弄清楚。批量操作带口音的路径
我有以下批处理脚本,读取存储在文本文件中的路径和文件名,但我不断收到有关误解口音的错误。
@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,但没有它的工作。
调试提示:使用'@'符号尝试使用'@echo ON'和前缀'CHCP'和所有'FOR'作为'@ CHCP'和'@ FOR'出现,但让'IF'和'copy'出现和'ren'在没有'@'的详细模式下查看真正发生了什么。 (也许在'IF'之前添加'@echo %% i == %% l') – JosefZ
我已经通过删除'@echo off'来看到以前的所有内容,但我仍然无法理解这是如何工作的。假设这个文件是“Détective”(法语),它将从这两个文件(names.txt和paths.txt)中读取“Duttective”,但由于该路径将被损坏,因此以后将无法找到该文件。 – Scentle5S
公然的mojibake案件。阅读[我对类似问题的回答](http://stackoverflow.com/a/31713084/3439404)。使用的CHCP 1252应该与ANSI编码的文件一致。 – JosefZ