批量修改文件名并添加升序号

时间:2016-01-12 19:46:52

标签: python sorting batch-file terminal rename

我有一堆按日期排序的TIFF图像文件。我需要使用python或terminal命令重命名它们。文件名的结构如下:

  • basename_unnecessary_x.tif

其中:

  • basename =是我需要保留的原始文件名的一部分(16个字符长)
  • unwanted =我要丢弃的原始文件名的一部分(长14个字符)
  • x =我需要添加的升序号码。从0开始,每个后续文件的步长为250.

我知道有很多关于批量重命名和向文件名添加升序号码的问题,但我没有找到任何保留原始文件名的部分并删除另一部分添加升序号码。任何帮助,将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:0)

首先获取要重命名为文本文件的所有文件名。

如果要重命名目录中的所有文件,只需在命令下运行并将其重定向到文本文件。[更改代码,现在只列出.tif文件]

dir /a:-D /b *.tif >cp1.txt

现在使用下面的代码,它会将文件 basename_unnecessary_x.tif 重命名为 basename_0.tif ,依此类推

@echo off
CD %CD%\<Folderpath in which .tif files should be renamed>
setlocal enabledelayedexpansion
set /a count=0
echo --------Script started -------------------------
echo.
for /f "tokens=*" %%a in (cp1.txt) do (
echo original file name %%a
echo ------------------------------------------
for /f "tokens=1 delims=_" %%b in ("%%a") do ( 

echo file will be renamed to %%b_!count!.tif
echo ------------------------------------------
rename %%a %%b_!count!.tif
set /a count+=250
)
)
echo.
echo --------Script Completed -------------------------

对脚本的更改:

  1. dir命令现在只将.tif文件列为cp1.txt
  2. 如果您更新代码的CD部分中的路径,则可以从任何位置执行脚本。
  3. 现在更新了代码,它将按照0到250的顺序进行..依此类推。
  4. 仅仅因为我已经初始化为零,它给第一个文件提供250的原因是因为我在重命名命令中使用它之前将它增加了250。