替换文件夹中的jpg文件上的文本

时间:2014-04-07 12:09:06

标签: batch-file

我有一个文件夹,它连续从相机拍摄jpg图像,jpg采用这种格式。

1UYK08HJ_20140403165858071_SYPTE1-PC.jpg 
1YK0BHJX_20140403165902791_SYPTE1-PC.jpg
1YK08HJX_20140403165959270_SYPTE1-PC.jpg
IDYKDBH_20140403170236634_SYPTE1-PC.jpg

我正在尝试将SYPTE1-PC中的文本替换为SHEFFIELD我正在运行此脚本,它首次完美运行但是当我尝试再次运行相同的脚本时,它不适用于其他新创建的图像。我使用了名为repl.bat的第三方帮助程序批处理文件。 https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

@echo off
dir *.jpg /b /a-d |find /i /v "%~nx0" |find /i /v "repl.bat" |repl "(.*?_)(....)(..)(..)(..)(..)(..)(...).*(\..*)" "ren \q$&\q \q$1SHEFFIELD_$2_$3_$4-$5_$6_$7_$8$9\q" xa >"C:\Users\IT-Administrator\Desktop\export\renfiles.bat"

1 个答案:

答案 0 :(得分:0)

试试这个:

@echo off&cls
setlocal EnableDelayedExpansion
for %%a in (*.JPG) do (
set $file="%%a"
ren "%%a" "!$file:SYPTE1-PC=SHEFFIELD!"
echo File [%%a] Done)

:EDIT

如需更多选项,您可以这样做:

@echo off&cls
setlocal EnableDelayedExpansion
for %%a in (*.JPG) do (
set $file="%%a"
set $file="!$file:SYPTE1-PC=SHEFFIELD!"
set $file="!$file:SYPTE=SHEFFIELD!"
ren "%%a" "!$file!"
echo File [%%a] Done)

编辑2

分离方法:20140403165858071 in 2014_04_03_16_58_58_071

@echo off&cls
setlocal EnableDelayedExpansion
for /f "tokens=1-4 delims=_." %%a in ('dir /b/a-d *.JPG') do (
echo %%a %%b %%c %%d
set $Char=%%b
set $CharF=!$Char:~0,4!_!$Char:~4,2!_!$Char:~6,2!_!$Char:~8,2!_!$Char:~10,2!_!$Char:~12,2!_!$Char:~14!
echo !$CharF!
pause)

然后,您可以使用REN或您希望的方式自行调整%%a_!$CharF!_%%c_%%d