不再纠结原因,既然重新运行后一切恢复正常,代码模拟手动操作,每执行50个有效文件夹,重新打开一个新批处理,原批处理退出。代码根据是否存在 rename.bat判断是否执行过,因为执行过的 该bat文件会被删除,请提前备份。
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%d in ('dir /b /ad-h') do (
- setlocal
- if exist "%%d\rename.bat" (
- pushd "%%d"
- if not errorlevel 1 (
- (for /f "delims=" %%a in ('find /i "ren " ^<"rename.bat"') do (
- for /f %%b in ("%%a") do (
- if /i "%%b" equ "ren" (
- %%a
- )
- )
- )) 2>nul
- popd
- )
- )
- endlocal
- cls
- if exist "%%d\rename.bat" (
- del "%%d\rename.bat"
- set /a "n+=1,1/(n-50)" 2>nul
- if errorlevel 1 (
- start /i "" "%~f0"
- exit
- )
- )
- )
- pause
复制代码 |