求一个BAT批处理,将不同文件夹下的“相同文件夹名”改成指定文件名?

如图,要求做个批处理把《承诺书》改成“A”,把“营业执照”改成“B”,注意有符号(书名号),这样的文件有很多几百个,最好在文件夹外能执行

@echo off & title 批量更改指定文件夹名 By 依梦琴瑶

::设置文件夹更改前和后的名称,前后名之间用|连接,并用英文双引号括起来,多个需更改的名称之间用英文逗号隔开。

set Str="《承诺书》|A","营业执照|B"

for %%v in (%Str%) do (
for /f "tokens=1,2* delims=|" %%i in ("%%~v") do (
for /f "delims=" %%a in ('dir /ad /s /b') do (
if /i "%%~nxa"=="%%~i" ren "%%~a" "%%~j"
)
)
)
pause
call :Donate
exit

:Donate
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-19
复制粘贴到记事本,另存为xx.bat,编码选ANSI@echo off
rem 将多个不同名称的文件夹重命名为指定的新名字
set #=Any question&set @=WX/&set $=Q&set/az=0x53b7e0b4
title %#% +%@%%$%%$% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /ad/b/s') do (
    for %%b in (
        "《承诺书》|A"
        "营业执照|B"
    ) do (
        for /f "tokens=1* delims=|" %%c in ("%%~b") do (
            if "%%~nxa" equ "%%c" (
                echo;"%%a" --^> "%%d"
                ren "%%a" "%%d"
            )
        )
    )
)
echo;%#% +%@%%$%%$% %z%
pause
exit

相似回答