【问题标题】:Windows Batch script to rename files with it's folder name within a for loopWindows Batch 脚本在 for 循环中使用其文件夹名称重命名文件
【发布时间】:2015-10-22 06:12:24
【问题描述】:

我在子目录中有一堆 .flv 文件,我需要遍历它们并根据其路径重命名。 我能够遍历它们,但我不知道如何拆分路径并使用批处理脚本重命名它。 这是我目前所拥有的:

    echo off

    for /R %%F in (*.flv) do (

        echo %%~pF    
    )

“echo %%~pF”在循环中打印当前文件的路径,如下所示: \folder\morefolders\activity\ NameThatIwant \Videos\ 我尝试在我的 for 循环中使用“delims=\”进行拆分,但我只得到“回声关闭”。

我尝试了其他教程,阅读了关于 SO 的其他问题,但没有一个是从循环中文件路径的拆分字符串重命名文件。

你们能否提供建议或指导我查看任何解释这些 %% 代码的材料?

谢谢。

【问题讨论】:

  • for /? 会告诉你所有你需要知道的。
  • 谢谢@SomethingDark,我去看看。
  • 如果您找到了解决方案,请考虑将其作为答案发布并接受;所以问题不会在 SO 数据库中保持打开状态......

标签: windows batch-file command-line


【解决方案1】:

我认为您不需要拆分路径,尽管您可以使用 for /f "delims=NameInthePath tokens=1" 来完成,其中 NameInthePath - 是路径中的一些单词,tokens= 为您提供了第一部分用delims分隔的路径。

实际上,如果您需要重命名文件名,您需要使用 REN 命令。如果您需要更改 flv 文件的路径 - 请使用 move 命令的副本。

将“demo”文件夹和所有子文件夹中的所有 .LOG 文件重命名为 .TXT 的批处理文件:

CD C:\demo\
For /R %%G in (*.LOG) do REN "%%G" "%~nG.TXT"

【讨论】:

  • "delims=NameInthePath" ??我最好的期望是一些非常令人惊讶的结果。
猜你喜欢
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 2020-06-29
  • 2012-09-05
  • 2021-09-14
  • 1970-01-01
相关资源
最近更新 更多