不知道你是把名字带1111的文件夹换成新的名字,还是把其中的1111替换成新的字符。我两个都做了,默认第二个- @echo off
- pushd %~sdp0
- setlocal enabledelayedexpansion
- set c=0
- set old=1111
- set new=新的名字或字符
-
- ::获取所有含1111的文件夹
- for /f "delims=" %%a in ('dir /ad /b /s ^|find "%old%"') do (set /a c+=1
- set f!c!=%%a)
- (for /l %%a in (!c!,-1,1) do echo;!f%%a!)>list.txt
-
-
- goto :ver2
-
-
- :ver1 把所有含1111的文件夹换成新的名字
- for /f "delims=" %%a in (list.txt) do (
- set n=%%~na
- set x=!n:%old%=%new%!
- if !x! neq !n! (ren "%%a" "%new%" >nul)
- )
- pause
- exit
-
- :ver2 把所有含1111的文件夹中的1111替换掉
- for /f "delims=" %%a in (list.txt) do (
- set n=%%~na
- set x=!n:%old%=%new%!
- if !x! neq !n! (ren "%%a" "!x!" >nul)
- )
- pause
- exit
复制代码
|