这是文件名格式。前导数字是图层,第二个数字是材料(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_1,01124_4,01124_6而其余文件保持不变。我需要一直到层00112 _ *。
如果可以,我想通过批处理文件执行此操作。试图按照指南,但名称格式绊倒了我。 Basic excel format
答案 0 :(得分:1)
我无法判断您是否需要修改文本文件中出现的文件名,或者是否需要重命名文件。无论哪种方式,我都有一个使用两个混合JScript /批处理正则表达式实用程序之一的简单解决方案:
使用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 jrepl
或call jren
。
答案 1 :(得分:0)
我花了一段时间才明白,将文件名称移位六个位置"真的意味着"在文件名中添加六个"。
@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'
命令更改为文本文件的名称。