批处理笔记(6) - 多轮修改文件名

多轮批量修改目录下文件名,更改文件名大写为小写。

保存代码到替换文件名[便捷拖入].bat,将要改动的目录拖放在本bat文件图标上,按提示执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
@REM @Author: xianghongai@gmail.com
title 批量替换文件名 by:小可(xianghongai@gmail.com)
:GTCONTINUE
set /a count=%count%+1
set /p oldStr=原字符:
set /p newStr=替换成:
for /f "tokens=*" %%a in ('dir "%~1" /a /b') do (
SETLOCAL ENABLEDELAYEDEXPANSION
set "newFileName=%%~na"
set "newFileName=!newFileName:%oldStr%=%newStr%!"
ren "%~1\%%~nxa" "!newFileName!%%~xa"
ENDLOCAL
)
echo.
echo 完成 %count%
set oldStr=""
set newStr=""
echo.
goto :GTCONTINUE

1
2
3
4
5
6
7
8
9
10
@echo off
title 更改文件名大写为小写
::本代码原思路由yyykkkyyyy提供,依梦琴瑶修改并添加子目录的文件处理
set dir=%~dp0&call:cdto
for /f "delims=" %%i in ('dir/s/b/ad') do set dir=%%i&call:cdto
pause
exit/b
:cdto
cd /d %dir%
for /f "delims=" %%i in ('dir/b/a-d/l') do ren "%%i" "%%i"

(本篇结束)

许可协议:自由转载-保持署名-非商业性使用-禁止演绎 (CC BY-NC-ND 4.0)

By 小可 from https://xinlu.ink/tech/batch-in-action-6-multiple-times-rename-files.html