【问题标题】:For loop in batch programming批处理编程中的for循环
【发布时间】:2010-11-16 18:42:57
【问题描述】:

我在如下目录中有一组文件:

文件-MyFile.txt
文件-AnotherFile.txt
文件-ThirdFile.txt

我想重命名所有文件,如下所示:

我的文件.txt
另一个文件.txt
第三文件.txt

如何使用for 循环来做到这一点?

【问题讨论】:

    标签: for-loop batch-file


    【解决方案1】:

    克里斯展示了最好的方法。我认为这可能接近您的要求,尽管我没有对其进行测试:

    @echo off
    for /f %%a IN ('dir /b *.txt') do call :dorename %%a
    goto :eof
    
    :dorename
    set oldfile=%1
    set newfile=%oldfile:File-=%
    rename %oldfile% %newfile%
    

    【讨论】:

    • 好的,仍然不完美,但它可以满足您的需求。 YMMV。
    • newfile=%oldfile:File-=%也可以是newfile=%oldfile:~5%
    • 为了完整起见(这个版本更具可读性),您可以使用*.txt 代替dir /b *.txt%%~nxa 代替%%a
    【解决方案2】:

    你不需要 for 循环:

    rename File- "" File-*.txt
    

    【讨论】:

    • 不适合我。显示“命令的语法不正确。”
    • 抱歉,一定是忽略了dos-batch标签。这是用于 unix 重命名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多