小编分享如何在DOS下批量修改文件名
|
如果我们需要使用批处理命令批量修改文件名,首先需要确定这些文件是被命名为怎么样的格式,笔者总结一些网络上的知识,做了一些例子给大家看一下,文末有一些变量和参数介绍。
今天要批量重命名一些文件,(即:目录FILE下有很多子目录file1,file2,file3……filen子目录中都有一个文件aaa.jpg,现要实现aaa.jpg重名为带子目录的名称,如file1下面的命名为file1.jpg),想到DOS处理,网上找了些现成脚本,没达到预期的目的,一时恼火,就小补了下DOS相关知识,包括基本命令,重点研究了下批量处理命令。 如何在DOS下批量修改文件名? 方法一的思路与方法二大致相同,只不过在获取完整路径的时候,换用了效率更高的 for /r 语句,并用一个变量var来获取文件所在文件夹的完整路径,通过判断var是否经过赋值来判断当前处理的音乐文件是否位于同一目录下,因为直接用 %%~dpa 获取到的字符串最后有一个反斜杠,所以,第二个for语句中,用 !var:~,-1! 把最后的反斜杠去掉了(在for语句内部,如果要 引用已经发生了改变的变量,必须使用变量延迟功能,也就是最开始的 setlocal 语句),后面的思路和方法二的一样。其实,方法一的代码大可不必判断当前处理的文件与上一次处理的文件是否位于同一目录下,因为 for /r 的时候,会获得文件的完整路径,只需要对完整路径直接进行操作就可以了,可以借鉴随风的做法,在 %%~dpa 的时候,直接在最后加上一个点号,可以使得效率进一步提升。 方法一代码: 01@echo off *setlocal enabledelayedexpansion02for /r %%a in (aaa.jpg) do (if not defined %%~dpa set "var=%%~dpa"*set03"%%~dpa=a"04for %%i in ("!var:~,-1!")do ren "%%~fa" "%%~ni.jpg")05pause复制代码@echo off *setlocal enabledelayedexpansionfor /r %%a in (aaa.jpg) do (if not defined %%~dpa set "var=%%~dpa"*set"%%~dpa=a"for %%i in ("!var:~,-1!")do ren "%%~fa" "%%~ni.jpg")pause 方法二用 dir /a-d /b /s 来获取完整路径名,放到for语句中来解析完整路径字符串,用 %%~dpa. 来获取音乐文件所处的文件夹完整路径(这里使用了一个小技巧:在字符串最后添加一个点号,从而使得for语句的%%~ni把文件夹名当做文件名来处理,我直接运行以上脚本发现一直出问题,后来发现先显示下%%~dpa. 即在ren 前加上echo "%%~dpa." 再执行脚本就OK了,具体原因不明,望高手解答),再用 %%~ni 获取文件夹名,用ren来实现改名,%%~nxi 获取原文件完整的文件名和后缀名。 方法二代码: 01@echo off02for /f "delims=" %%i in ('dir /a-d /b /s D:1*.jpg') do (ren "%%i" "%%~nxi" )03pause复制代码@echo offfor /f "delims=" %%i in ('dir /a-d /b /s D:1*.jpg') do (ren "%%i" "%%~nxi" )pause 基本格式(这里写的是在命令行里用的格式,如果是在批处理中,需要把其中%再多加个%形成%%): for /参数 %变量 in (集) do 命令 注:上面除中文的以外,其余的是按它的格式要求书写的,大小写都行。 参数:FOR分四种参数 D L R F,并且有的参数还可附加另外的选项下面会分别介绍 变量:(记住如果是在批处理中使用for命令时,变量前的%需改为%%)这个变量名是由单个字母组成且区分大小写(原帮助是这么说的,实际运用中用单个数字作为变量名试过证明也可行),如%B和%b代表的是不同的变量。 一、参数 /d for /d %%变量 in (集) do 命令 /d 参数是指定仅对目录而不是文件执行的for命令。 for /d %a in (c:*.*) do @echo %a 二、参数 /R /R参数之后还可带盘符及路径 for /r 此处可以带有路径 %变量 in (集) do 命令 例1: 01@echo off02rem 显示d:盘中所有文件名为file1和file2的列表03for /r d: %%h in (file1,file2) do if exist %%h echo %%h04pause复制代码@echo offrem 显示d:盘中所有文件名为file1和file2的列表for /r d: %%h in (file1,file2) do if exist %%h echo %%hpause 例2: 01@echo off02rem 删除C盘中所有*.chk的文件03for /r c: %%h in (*.chk) do del /q %%h04pause复制代码@echo offrem 删除C盘中所有*.chk的文件for /r c: %%h in (*.chk) do del /q %%hpause 注:del /q 表示用安静模式删除(不需确认) 三、参数 /L for /L %%变量 in (起始值,每次增值,结束时的比较值) do 命令 (上面L也可用小写,主要为了视觉上不与数字1混淆而没用小写) (起始值,每次增值,结束时的比较值)相当于一个等差数字序列,从“起始值”的数字开始,每次增加多少(也可设定为负数)为“每次增值”,并与“结束时的比较值”比较,超出则退出for循环(也不执行本轮后面的do 命令)。 例: 01@echo off02::在D盘建立aa1~ aa5五个文件夹03for /L %%i in (1,1,5) do md d:aa %%i04pause复制代码@echo off::在D盘建立aa1~ aa5五个文件夹for /L %%i in (1,1,5) do md d:aa %%ipause 四、参数 /f 这个参数/f将会打开(集)里的文件,使for命令能处理文本文件的读取和添加删除替换等编辑性的操作,可谓功能强大,因此也相对复杂一些。 五、变量 ~I - 删除任何引号("),扩充 %I %~fI - 将 %I 扩充到一个完全合格的路径名 %~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串。 以上便是在DOS下批量修改文件名的一些见解和方法,用户可以根据变量和参数对批量修改文件名的文件进行处理。 |
相关文章
热销商品
天[新品]方太嵌入式洗碗机T70灶下全自动小型家用烘干一体17套01
[新品]方太嵌入式洗碗机T70灶下全自动小型家用烘干一体17套01
¥6640 领券购买
淘逍遥cos假发超自然行动组假毛中长发纯白色原毛坯万用百搭全头套
逍遥cos假发超自然行动组假毛中长发纯白色原毛坯万用百搭全头套
¥25.3 领券购买
天古装假发片升级款玉米须不易打结长发片汉服发型发排cos古风造型
古装假发片升级款玉米须不易打结长发片汉服发型发排cos古风造型
¥9.5 领券购买
淘假发支架头模 教习头小光头 模特头假人头 头模展示道具工厂直销
假发支架头模 教习头小光头 模特头假人头 头模展示道具工厂直销
¥13 领券购买
天不用戴发网假发女片头顶补发全头套层次人鱼长卷无痕增发量仿真发
不用戴发网假发女片头顶补发全头套层次人鱼长卷无痕增发量仿真发
¥199 领券购买
天机器狗2026新款ai人工智能编程遥控机械狗男孩儿童玩具生日礼物
机器狗2026新款ai人工智能编程遥控机械狗男孩儿童玩具生日礼物
¥168 领券购买
天普莱美JMPRIME萌宠小狗柔软可爱狗玩偶小狗毛绒玩偶儿童玩具礼物
普莱美JMPRIME萌宠小狗柔软可爱狗玩偶小狗毛绒玩偶儿童玩具礼物
¥85 领券购买
天独角兽智能机器狗儿童玩具宝宝莉遥控小马走路会叫机器人女孩礼物
独角兽智能机器狗儿童玩具宝宝莉遥控小马走路会叫机器人女孩礼物
¥130 领券购买
淘超晟美琪舔舔猫牵绳遥控狗学舌音乐摸头互动模拟喂养毛绒宠物玩具
超晟美琪舔舔猫牵绳遥控狗学舌音乐摸头互动模拟喂养毛绒宠物玩具
¥43 领券购买
天免打孔家用双层纱门帘半截隔断帘防蚊帘卧室防偷窥魔术贴布艺门帘
免打孔家用双层纱门帘半截隔断帘防蚊帘卧室防偷窥魔术贴布艺门帘
¥30.4 领券购买
淘法式复古田园乡村花边棉线编织钩针咖啡帘飘窗帘头短帘门帘半帘
法式复古田园乡村花边棉线编织钩针咖啡帘飘窗帘头短帘门帘半帘
¥30.6 领券购买
淘LACESHABBY治愈系法式复古风格蓝色条纹棉麻窗幔遮挡帘子窗帘门帘
LACESHABBY治愈系法式复古风格蓝色条纹棉麻窗幔遮挡帘子窗帘门帘
¥59.8 领券购买
天水晶珠帘隔断帘客厅葫芦门帘卧室家用风水帘卫生间过道帘子免打孔
水晶珠帘隔断帘客厅葫芦门帘卧室家用风水帘卫生间过道帘子免打孔
¥95 领券购买
天天湖啤酒11.5度小麦白啤330ml*8听罐装整箱精酿啤酒畅饮浑浊型
天湖啤酒11.5度小麦白啤330ml*8听罐装整箱精酿啤酒畅饮浑浊型
¥23.9 领券购买
天燕京啤酒特制蓝听330ml*24听清爽黄啤酒整箱包邮官方正品
燕京啤酒特制蓝听330ml*24听清爽黄啤酒整箱包邮官方正品
¥44 领券购买
天觅刻精酿啤酒德式小麦/比利时小麦风味整箱发货麦香浓郁
觅刻精酿啤酒德式小麦/比利时小麦风味整箱发货麦香浓郁
¥44.9 领券购买

