使用批处理文件转换文件名



这是文件名格式。第一个数字是图层,第二个数字是材质(3D打印机)。

01118_7.tif,
01118_6.tif,
01118_5.tif,
01118_4.tif,
01118_3.tif,
01118_2.tif,
01118_1.tif,
01118_0.tif

我需要做的是将以_1、_4、_6结尾的文件移高六位。因此,01124_101124_401124_6,而其余文件保持不变。我需要一直做到00112_*层。

如果可以的话,我想通过批处理文件来完成这项工作。我试着按照一个指南,但名字格式让我绊倒了。基本excel格式

我不知道您是否需要修改文本文件中出现的文件名,或者是否需要重命名文件。无论哪种方式,我都有一个简单的解决方案,使用两个混合JScript/批处理regex实用程序之一:


使用JREPL.BAT:修改文本文件中的文件名

jrepl "^d{5}(?=_[146].tif)" "lpad(Number($0)+6,'00000')" /i /j /f test.txt /O -


使用JREN.BAT:重命名当前目录中的文件

jren "^d{5}(?=_[146].tif$)" "lpad(Number($0)+6,'00000')" /i /j


如果将命令放入批处理脚本中,请使用call jreplcall jren

我花了一段时间才明白"将文件名提高六位"实际上意味着"将六位添加到文件名中"。

@echo off
setlocal EnableDelayedExpansion
set "numbers=/1/4/6/"
for /F "tokens=1,2 delims=_." %%a in ('dir /B /A-D *.tif') do (
   if "!numbers:/%%b/=!" neq "%numbers%" (
      set "newNum=1%%a+6"
      ECHO ren "%%a_%%b.tif" "!newNum:~1!_%%b.tif"
   )
)

如果名称不在文件中,而是放置在文本文件中的文本行,请根据文本文件的名称更改'dir /B /A-D *.tif'命令。

最新更新