求助!批量替换文件名某个字段
bat吧
全部回复
仅看楼主
level 7
月園月缺 楼主
@璐村惂鐢ㄦ埛_000076K馃惥 off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a /b *.cdr') do (
set nobird=%%a
ren "%%~a" "!nobird:1002-=A区-1002__!")
新手求助,找到的一段代码,运行后,"1002-" 为一个会员号,改为 "A区-1002_"
2020年09月08日 09点09分 1
level 7
月園月缺 楼主
现在有上百个会员号,需要对应修改,如“1003-”改“A区-1003_” ;“1234-”改“城-1234_” ; “2345-”改“啊-2345_”等等。。。
改得内容没有规律,只能手动录入,但是我不知道怎么修改这段代码。
笨办法试过,不停复制这段,然后修改nobird后面的数据,但是数量一多就会提示“已达到最大的 setlocal 递归层” ,就会修改失败。
跪求大神帮改改,万分感谢!
2020年09月08日 09点09分 2
level 9
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
echo off&cls
rem 将多个指定扩展名/后缀名的文件的名称中的指定字符串分别替换成其他内容
mode con lines=3000
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
cd /d "%~dp0"
for %%a in (
"1002-=A区-1002_"
"1003-=A区-1003_"
"1234-=城-1234_"
"2345-=啊-2345_"
) do (
for /f "tokens=1* delims==" %%b in ("%%~a") do (
for /f "delims=" %%e in ('dir /a-d/b "*%%~b*.cdr" 2^>nul') do (
set "f=%%e"
set "fname=%%~nxe"
setlocal enabledelayedexpansion
echo;"!f!" --^> "!fname:%%~b=%%~c!"
endlocal
)
)
)
echo;%#% +%$%%$%/%_% %z%
pause
exit
2020年09月08日 12点09分 3
谢谢,但是我运行后并没有修改文件名呢。
2020年09月09日 07点09分
@月園月缺 按运行代码后窗口标题栏中的提示联系我
2020年09月09日 12点09分
1