首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目录中的on无限循环(批处理,cmd)

目录中的on无限循环(批处理,cmd)
EN

Stack Overflow用户
提问于 2017-10-31 18:25:00
回答 1查看 868关注 0票数 0

我有一个特殊的问题,我找不到。

有一个文件夹,其中包含.txt文件,其中包含cp866编码的cp866文件,其结构如下:

代码语言:javascript
复制
directory
‐‐2004_lpq.txt
--2006_lpq_jargon.txt
--barlou.txt

我需要在不更改文件名和目录结构的情况下转换utf-8中的所有.txt文件。

这是我的代码:

代码语言:javascript
复制
@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 
)

我如何运行脚本:

代码语言:javascript
复制
converter.cmd directory

输出:

代码语言:javascript
复制
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"
........

在其他机器上,它工作得很好。有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-01 13:06:16

正如Compo所建议的,最好将临时文件放在当前目录之外。如果文件名包含特殊字符(如空格),则最好引用文件名。

代码语言:javascript
复制
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" 
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47042219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档