Bat批处理:批量重命名包含指定名称文件夹里的指定文件
发布网友
发布时间:2022-04-22 22:05
我来回答
共2个回答
热心网友
时间:2022-04-18 20:34
1. 单一的重命名,代码如下:
@echo off
rename D:\111\111.txt 222.txt
pause
2. 批量的重命名,请根据你的命名规则使用for循环即可。代码如下:
@echo off
cd /d D:\
if exist 111.txt (
if not exist D:\111\ md 111
copy 111.txt 111\222.txt
del 111.txt
rename 111\333.txt 444.txt
)
pause
3. 知道文件名如111.txt,但不明确它的路径,搜索文件如下:
@echo off
for %%i in (c d e f g h) do (
cd /d %%i:\
echo 搜索%%i盘...
dir /s /b 111.txt
)
pause
4. 知道文件名比如(*\111\222.txt)盘符不知道,自动搜索并修改为333.txt
@echo off
for %%i in (c d e f g h) do (
cd /d %%i:\
echo 搜索%%i盘...
rem 搜索111文件夹
for /f %%j in ('dir /s /b /a:d *111') do (
if "%%~nj"=="111" (
if exist %%j\222.txt (
echo rename %%j\222.txt 333.txt
rename %%j\222.txt 333.txt
)
)
)
)
pause
热心网友
时间:2022-04-18 21:52
难点在第3点,必须知道文件名的命名规则,因BAT对文件的排序和WIN往往不一样。
BAT中13.txt排在2.txt前面,是按文件名逐字比较。而WIN中按数字大小比较。