Bat批处理:批量重命名包含指定名称文件夹里的指定文件
1.批处理范围:脚本所在目录里所有的子文件夹(有的是二层结构,有的三层结构或四层)2.指定名称文件夹为:只要文件夹名称里包含(正或Z)这两个任何一个都进行文件重命名3.指...
1.批处理范围:脚本所在目录里所有的子文件夹(有的是二层结构,有的三层结构或四层)
2.指定名称文件夹为:只要文件夹名称里包含(正或Z)这两个任何一个都进行文件重命名
3.指定文件为:文件夹里的最后一个文件(重命名为TYT-1)
4.图片格式为:jpg 及 tif
求具体代码 展开
2.指定名称文件夹为:只要文件夹名称里包含(正或Z)这两个任何一个都进行文件重命名
3.指定文件为:文件夹里的最后一个文件(重命名为TYT-1)
4.图片格式为:jpg 及 tif
求具体代码 展开
2个回答
2018-04-13 · 知道合伙人互联网行家
关注
展开全部
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
@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
展开全部
难点在第3点,必须知道文件名的命名规则,因BAT对文件的排序和WIN往往不一样。
BAT中13.txt排在2.txt前面,是按文件名逐字比较。而WIN中按数字大小比较。
BAT中13.txt排在2.txt前面,是按文件名逐字比较。而WIN中按数字大小比较。
更多追问追答
追问
图片的文件名格式都是三位数 001 002 003
追答
还有一点:如果像aaZ这样文件夹下,里面还有aa1文件夹,那么aaZ中最后一个文件,是仅指aaZ当前文件夹中最后一个,还是也要把aa1中的文件都要算进来?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |