【问题标题】:Batch Script to Rename JPEGS adding a 1 to the end重命名 JPEGS 的批处理脚本在末尾添加 1
【发布时间】:2013-10-23 05:49:45
【问题描述】:

我在子文件夹中有大量 JPEG,我需要将它们重命名为当前名称,并在末尾加上 1。

例如:

G:\FILENAME\Subfolder1\subfolder2\JPEGNAME.JPG

想重命名为

G:\FILENAME\Subfolder1\subfolder2\JPEGNAME1.JPG

我有 900 多个这种格式的文件需要重命名。

有什么帮助吗?

【问题讨论】:

  • 欢迎来到 SO!你有第一次尝试吗?让我们看一些代码,然后你更有可能得到一些帮助(即使是简单的伪代码也比没有好)。
  • 我第一次尝试使用下面的代码。我的 JPEG 名称类似于。 000010508298.JPG 并运行以下重命名没有任何作用。我尝试过类似 echo rename *.JPG *1.JPG 但它似乎切断了我的文件名的结尾并将文件重命名为 0001051.JPG。

标签: batch-file rename file-rename batch-rename


【解决方案1】:

使用renamer:

$ renamer --find '/(.*)\.JPG/' --replace '$11.JPG' *

要递归操作,请将命令末尾的* 更改为**

【讨论】:

    【解决方案2】:

    可能只需要一个简单的 REN 命令。见How does the Windows RENAME command interpret wildcards?

    只要您的文件名中没有一个名称中有多个点,那么以下内容应该适用于当前目录。只需确保 ? 的数量至少与最长的名称一样多。

    ren *.jpg ??????????????????????????????????????1.jpg
    

    或者处理整个目录树

    for /r %F in (.) do @ren "%F\*.jpg" ??????????????????????????????????????1.jpg
    

    或者您可以使用 FOR 或 FOR /R 循环迭代每个文件,并一次重命名它们,就像 foxidrive 在他的回答中所做的那样。

    【讨论】:

      【解决方案3】:

      编辑我添加了/r,因为我看到你有一个文件树要修改。在 JPG 文件的主文件夹中键入此命令。

      这是一个 cmd 提示符命令。如果您喜欢在控制台上看到的内容,请删除 echo

      for /r %a in (*.jpg) do echo rename "%a" "%~na1%~xa"
      

      【讨论】:

      • 你能解释一下 "%a" "%~na1%~xa" 部分吗...我对这种语言没有那么丰富的经验。谢谢
      • for 命令使用的元变量可以是 a 到 z 和 A 到 Z 等字符。这在此处称为 %a(或批处理文件中的 %%a)。它依次获取每个文件名,%~n 返回文件名部分,而%~x 返回扩展名。它们在末尾添加了元变量名称,即 a 此处变为 %~na 和 %~xa - 阅读 FOR /? 的最后一页以获取修饰符列表。
      • 感谢大家的快速回复。我最终使用了一个工具 Ifranview。
      • 我还发现了一个很棒的程序 metamorphose2,它可以根据标准重命名文件夹。 file-folder-ren.sourceforge.net/index.php?page=Download
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      相关资源
      最近更新 更多