我的相机只使用 4 位数对照片进行编号,但我现在已经进入 5 位数领域。所以对于成千上万张照片,我想添加第五位数字。例如,将 IMG_2450 重命名为 IMG_12450。
大约一年前我使用命令提示符做过这个,但今天我无法复制这些结果。
我试过了:ren IMG_*.jpg IMG_1*.jpg
但最终发生的是,命令提示符不是添加数字 1,而是替换现有数字字符串的第一个字符。
因此,IMG_2450 变为 IMG_1450 而不是 IMG_12450。
我在这里做错了什么?
我的相机只使用 4 位数对照片进行编号,但我现在已经进入 5 位数领域。所以对于成千上万张照片,我想添加第五位数字。例如,将 IMG_2450 重命名为 IMG_12450。
大约一年前我使用命令提示符做过这个,但今天我无法复制这些结果。
我试过了:ren IMG_*.jpg IMG_1*.jpg
但最终发生的是,命令提示符不是添加数字 1,而是替换现有数字字符串的第一个字符。
因此,IMG_2450 变为 IMG_1450 而不是 IMG_12450。
我在这里做错了什么?
这是未经测试的 - 首先在一些示例文件夹上尝试。
它将处理当前目录树下的所有 img_*.jpg 文件,并期望文件名采用您描述的格式。
@echo off
for /f "delims=" %%a in ('dir /ad /b /s') do (
pushd "%%a"
for /f "delims=" %%b in ('dir img_*.jpg /a-d /b') do (
for /f "tokens=1,* delims=_" %%c in ("%%b") do ren "%%b" "%%c_1%%d"
)
popd
)
如果您只想处理一个文件夹,请尝试以下操作(测试后):
@echo off
for /f "delims=" %%b in ('dir img_*.jpg /a-d /b') do (
for /f "tokens=1,* delims=_" %%c in ("%%b") do ren "%%b" "%%c_1%%d"
)