2025年批处理删除文件名相同字符(批量删除文件名相同的字)

批处理删除文件名相同字符(批量删除文件名相同的字)p 喜欢下载东西的人应该很有体会 p

大家好,我是讯享网,很高兴认识大家。




讯享网

 <tbody> <tr> <td> </td> </tr> <tr> <td> </td> <td width="670px" style="position:relative;"> <p> 喜欢下载东西的人应该很有体会,每次下载过来的文件名往往是比较有规律,但是那个规律却不是你想要的规律,一个个去改名很麻烦,以下我总结了几个常用的用于改名的批处理。可以提建议,为了防止大家误操作,建议大家先在新建文件夹尝试成功后再对所需文件进行修改,而不要急着马上使用。 </p> <p> <strong><font color="#ff0000">1、批量修改扩展名</font></strong> </p> <p> 如把当前文件夹的*.jpg全部改为*.rar。 </p> <p> @ECHO OFF <br> set listFile=list.tmp <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> dir *.jpg /a /b&gt;&gt;"%listFile%" <br> FOR /F "tokens=*" %%a IN ( <br> 'more "%listFile%"' <br> ) DO ( <br> ren "%%a" "%%~na.rar" <br> ) <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> PAUSE </p> <p> </p> <p> <strong><font color="#ff0000">2、前面插入(例如要给所有歌曲名前面添加歌手的姓名)</font></strong><font color="#ff0000"> </font><br> @ECHO OFF <br> set listFile=list.tmp <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> dir *.mp3 /a /b&gt;&gt;"%listFile%" <br> FOR /F "tokens=*" %%a IN ( <br> 'more "%listFile%"' <br> ) DO ( <br> ren "%%a" "歌手名%%a" <br> ) <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> PAUSE </p> <p> <br> <strong><font color="#ff0000">3、后面添加(例如要给所有文件名后面添加一个网站的网址)</font></strong><font color="#ff0000"> </font><br> @ECHO OFF <br> set listFile=list.tmp <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> dir *.mp3 /a /b&gt;&gt;"%listFile%" <br> FOR /F "tokens=*" %%a IN ( <br> 'more "%listFile%"' <br> ) DO ( <br> ren "%%a" "%%~naWWW WWW Com%%~xa" <br> ) <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> PAUSE </p> <p> </p> <p> <strong><font color="#ff0000">4、删除文件名中的相同部分(例如删除所有文件名中的歌手名) </font><br> </strong>@ECHO OFF <br> set deleteString=歌手名 <br> set listFile=list.tmp <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> dir *.mp3 /a /b&gt;&gt;"%listFile%" <br> FOR /F "tokens=*" <em>%%a </em>IN ( <br> 'more "%listFile%"' <br> ) DO ( <br> SETLOCAL ENABLEDELAYEDEXPANSION <br> set newFileName=%%a <br> set newFileName=!newFileName:%deleteString%=! <br> ren "%%a" "!newFileName!" <br> ENDLOCAL <br> ) <br> del "%listFile%" /q 1&gt;nul 2&gt;nul <br> PAUSE </p> <p> </p> <p> <strong><font color="#ff0000">5、把文件名批量重命名为上级目录名文件名的形式,例如</font></strong><font color="#ff0000">d: estPathfatherPath est.txt </font> </p> <p> 就要重命名为fatherPathtest.txt,按照它的要求,我们可以分析一下,重命名的命令就是 <br> ren 然后参数为ren 源文件名 新文件名,即上面的单个进行重命名的话,那就是 <br> ren "d: estPathfatherPath est.txt" "fatherPathtest.txt" <br> 既然知道了单个怎么命名,那批量也应该能知道了吧。 <br> 我们知道在批处理中要批量处理的话,那肯定是少不了用for命令的。 <br> 现在我们把他的要求分解成两部分 <br> 1、先用dir命令把所有要进行重命名的文件的全路径列出来发送到一个临时的文本文件。 <br> (供下面的for语句来读取) <br> 2、用for命令来读取那个由dir命令生成的列表文件 <br> a、在循环的过程中取得上级文件夹名 <br> b、取得文件名 <br> c、ren "源文件名" "上级文件夹名文件名" <br> 上面就是伪代码,接下来是批处理的实现代码 </p> <p> @echo off </p> <p> rem 生成临时列表文件 <br> dir d:*.txt /s /a-d /b&gt;&gt;tmp.txt </p> <p> rem 用for命令来读取那个由dir命令生成的列表文件 <br> FOR /F "tokens=*" %%a IN ( <br> 'more tmp.txt' <br> ) DO ( <br> rem 用Setlocal来启用环境变量延迟功能 <br> Setlocal EnableDelayedExpansion </p> <p> rem 取得路径包括了最后一个斜线 <br> set tempPath=%%~dpa </p> <p> rem 把路径中的最后一个斜线去掉 <br> set tempPath=!tempPath:~,-1! </p> <p> rem 在for命令中来扩展取得路径名 <br> FOR %%A IN ( <br> "!tempPath!" <br> ) DO ( <br> rem 扩展取得上级目录名 <br> set filePath=%%~nA <br> rem 新的文件名为: 上级目录名文件名 <br> set new_name=!filePath!%%~nxa </p> <p> ren "%%a" "!new_name!" <br> ) <br> ENDLOCAL <br> ) <br> rem 删除临时文件 <br> del tmp.txt /q 1&gt;nul 2&gt;nul <br> pause </p> <p> </p> <p> <strong><font color="#ff0000">6、批量重命名,删除文件名中相同的网站名。</font></strong> </p> <p> 昨天晚上在网上下载了一个压缩包,里面是邓丽君的歌曲,有50多首。那些歌曲的文件名的后面都加了那个网站的网址,看起来很不爽,大致为 </p> <p> 歌曲www.xxx.com.mp3 </p> <p> 所以我要把后面的www.xxx.com去掉 </p> <p> 如果一个一个去的话,那必然很麻烦,所以就用批处理了,以下的批处理就是用来实现这个功能的。 </p> <p> 因为我这里www.xxx.com.mp3即最后的字符个数为14个,所以我只要取前面的文件名,不取这最后的14个,然后再后面加上.mp3就可以了。 </p> <p> 即 </p> <p> %fileName:~0,-14% </p> <p> 这样的形式就可以取到了。 </p> <p> 上面是说原理,下面就是我的批处理,批处理代码不是很多,我就不做详细说明了,有兴趣的朋友自己可以看看,也可以根据这个修改成自己需要的批处理。 </p> <p> @ECHO OFF <br> COLOR 0a </p> <p> rem 调用初始化部分代码 <br> CALL :initEnv </p> <p> rem 删除临时文件 <br> CALL :delTmpFiles </p> <p> rem 生成列表保存在临时文件中(重命令时根据这个列表来进行命名) <br> CALL :madeList&gt;&gt;%tmpFile% </p> <p> rem 调用主模块(读取列表,进行重命名) <br> CALL :main </p> <p> rem 删除临时文件 <br> CALL :delTmpFiles </p> <p> PAUSE <br> EXIT </p> <p> rem 初始化 <br> :initEnv <br> set tmpFile=tmp.txt <br> GOTO :EOF </p> <p> rem 删除临时文件 <br> :delTmpFiles <br> del %tmpFile% /q 1&gt;nul 2&gt;nul <br> GOTO :EOF </p> <p> rem 生成列表文件 <br> :madeList <br> dir *.mp3 /a /b <br> goto :EOF </p> <p> rem 主模块(重命名) <br> :main <br> SETLOCAL ENABLEDELAYEDEXPANSION <br> FOR /F "tokens=*" %%a IN ( <br> 'more %tmpFile%' <br> ) DO ( <br> set strTemp=%%a </p> <p> ren "%%a" "!strTemp:~0,-14!.mp3" <br> ) <br> GOTO :EOF </p> <p> </p> <p> <strong><font color="#ff0000">附:批处理读取文本常用命令</font></strong> </p> <p> 读取文本 用 for /f <br> 文本名有空格 用 usebackq <br> 文本内容有空格并不要前面的 用 delims=] <br> 扩展到 路径 和 文件名 用 %%~dpn1 </p> <p> 例子: </p> <p> for /f "delims=" %%i in (1.txt) do ( <br> set "str=%%~dpi" <br> set str=!str:*]=! <br> echo !str:~,-1! %%~ni <br> ) <br> pause </p> </td> </tr> </tbody> 

讯享网
小讯
上一篇 2025-05-17 10:16
下一篇 2025-05-18 07:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/181154.html