Board logo

标题: [文件操作] [分享]批处理重命名文件和文件夹并添加数字序号 [打印本页]

作者: Batcher    时间: 2022-6-25 09:37     标题: [分享]批处理重命名文件和文件夹并添加数字序号

【问题描述】
  1. @echo off
  2. cd /d "%~dp0"
  3. set "NewFolder=一年一班"
  4. ren "%~nx1" "%NewFolder%"
  5. setlocal enabledelayedexpansion
  6. set "n=1"
  7. for /f "delims=" %%i in ('dir /b /a-d "%NewFolder%\*.txt"') do (
  8.     ren "%NewFolder%\%%i" "大一 (!n!)%%~xi"
  9.     >"%NewFolder%\大一 (!n!)%%~xi" echo 一年一班
  10.     set /a n+=1
  11. )
  12. REM 处理子文件夹
  13. for /f "delims=" %%i in ('dir /b /ad "%NewFolder%"') do (
  14.     REM 假设只有一个子文件夹
  15.     ren "%NewFolder%\%%i" "%NewFolder%"
  16.     set "n=1"
  17.     for /f "delims=" %%j in ('dir /b /a-d "%NewFolder%\%NewFolder%\*.txt"') do (
  18.         ren "%NewFolder%\%NewFolder%\%%j" "大一 (!n!)%%~xj"
  19.         >"%NewFolder%\%NewFolder%\大一 (!n!)%%~xj" echo 一年一班
  20.         set /a n+=1
  21.     )
  22. )
复制代码
这个目前是只支持一个子文件夹。如果有多个文件夹应该怎么修改?


或者是子文件夹里面还有一个子文件夹,应该怎么修改?
作者: Batcher    时间: 2022-6-25 09:38

处理多个子文件夹.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. set "NewFolder=一年一班"
  4. setlocal enabledelayedexpansion
  5. REM 处理当前文件夹
  6. ren "%~nx1" "%NewFolder%"
  7. call :RenFile "%NewFolder%"
  8. REM 处理子文件夹
  9. set "FolderN=1"
  10. for /f "delims=" %%i in ('dir /b /ad "%NewFolder%"') do (
  11.     ren "%NewFolder%\%%i" "%NewFolder% (!FolderN!)"
  12.     call :RenFile "%NewFolder%\%NewFolder% (!FolderN!)"
  13.     set /a FolderN+=1
  14. )
  15. goto :eof
  16. :RenFile
  17. pushd "%~1"
  18. set "FileN=1"
  19. for /f "delims=" %%i in ('dir /b /a-d "*.txt"') do (
  20.     ren "%%i" "大一 (!FileN!)%%~xi"
  21.     >"大一 (!FileN!)%%~xi" echo 一年一班
  22.     set /a FileN+=1
  23. )
  24. popd
复制代码

作者: pokalifor    时间: 2022-6-26 01:35

虽然我不怎么看得懂,但能感觉到你是比较专业的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2