我有一个特殊的问题,我找不到。
有一个文件夹,其中包含.txt文件,其中包含cp866编码的cp866文件,其结构如下:
directory
‐‐2004_lpq.txt
--2006_lpq_jargon.txt
--barlou.txt我需要在不更改文件名和目录结构的情况下转换utf-8中的所有.txt文件。
这是我的代码:
@echo off
for /r %1 %%f in (*.txt) do (
iconv -c -f cp866 -t utf-8 %%f > %%f.temp
echo converted %%f
move %%f.temp %%f
)我如何运行脚本:
converter.cmd directory输出:
converted "E:\YandexDisk\Учеба\OS\CMDProblem\directory\2004_lpq.txt"
Moving files: 1.
converted "E:\YandexDisk\Учеба\OS\CMDProblem\directory\2006_lpq_jargon.txt"
Moving files: 1.
converted "E:\YandexDisk\Учеба\OS\CMDProblem\directory\barlou.txt"
Moving files: 1.
converted "E:\YandexDisk\Учеба\OS\CMDProblem\directory\2004_lpq.txt"
Moving files: 1.
converted "E:\YandexDisk\Учеба\OS\CMDProblem\directory\2006_lpq_jargon.txt"
........在其他机器上,它工作得很好。有什么问题吗?
发布于 2017-11-01 13:06:16
正如Compo所建议的,最好将临时文件放在当前目录之外。如果文件名包含特殊字符(如空格),则最好引用文件名。
for /r %1 %%f in (*.txt) do (
iconv -c -f cp866 -t utf-8 "%%~f" > "%TEMP%\%%~f.temp"
echo converted "%%~f"
move "%TEMP%\%%~f.temp" "%%~f"
)https://stackoverflow.com/questions/47042219
复制相似问题