【发布时间】:2017-10-26 10:04:13
【问题描述】:
我有数百个文件,它们的名称在末尾有一个顺序索引:
recipes0001.jpg
recipes0002.jpg
...
recipes0283.jpg
我需要重命名它们,以便索引从 976(不是 1)开始,当索引达到 1000 时,前导 0 变为“1”
recipes0976.jpg
recipes0977.jpg
...
recipes1000.jpg
recipes1001.jpg
....
我已经编写了这个批处理代码(来自here 的修改答案):
@echo off
setlocal EnableDelayedExpansion
set i=975
for %%a in (*.jpg) do (
set /a i+=1
if i lss 1000 ren "%%a" "recipes0!i!.new"
if i geq 1000 ren "%%a" "recipes!i!.new"
)
ren *.new *.jpg
似乎代码总是运行没有前导 0 的部分,因为我不断收到recipes976.jpg、recipes1001.jpg 等。我做错了什么?
作为后续问题,两个if可以合并为一个if...else吗?
【问题讨论】:
标签: batch-file if-statement windows-xp batch-rename