无忧启动论坛

标题: 如何用批处理删除统一文件夹中文件名中的指定字符串 [打印本页]

作者: wang6610    时间: 2015-12-18 09:17
标题: 如何用批处理删除统一文件夹中文件名中的指定字符串
本帖最后由 wang6610 于 2015-12-18 09:19 编辑

如何用批处理删除同一文件夹中文件名中的指定字符串。如 把所有的 acnnn_*_asfghj.mp3文件改名为_*_.mp3 。。。


  谢谢
作者: 2012duanyongli    时间: 2015-12-18 16:31
这个挺复杂,好在没白忙活。
@echo off
setlocal enabledelayedexpansion
del *.txt
del ren.bat
dir /b *.mp3|find /i "acnnn" >ren0.txt
dir /b *.mp3|find /i "asfghj" >>ren0.txt

:清除重复行(行首不能有空格)
for /f "delims=" %%i in ('type ren0.txt') do (if not defined %%i set %%i=A & echo %%i>>ren1.txt)

:删除字符串
for /f "delims=" %%1 in ('type "ren1.txt"')do set setin=%%1&set change=!setin:acnnn=!&echo !change!>>ren2.txt
for /f "delims=" %%1 in ('type "ren2.txt"')do set setin=%%1&set change=!setin:asfghj=!&echo !change!>>ren3.txt

:合并两个文档
set n1=0
for /f "delims=" %%a in (ren1.txt) do (
set /a n1=n1+1
set n2=0
for /f "delims=" %%b in (ren3.txt) do (
set /a n2=n2+1
if !n1! equ !n2! (
echo ren %%a %%b>>ren.bat
)
)
)
:最后更改文件名
ren.bat
作者: dos时代菜鸟    时间: 2015-12-18 19:03
本帖最后由 dos时代菜鸟 于 2015-12-21 08:13 编辑

建立如下内容 批处理 ,把要 操作的文件夹 拖动 到 该 批处理上
呵呵 ,看看这个算法 怎么样 吧,就是给个思路,刚在win7下测试了下,通过。


-----------r.cmd---------------
  1. @echo off
  2. @setlocal ENABLEDELAYEDEXPANSION
  3. for /f %%c in ('dir /b /a-d %1\*.mp3') do (
  4.         set name=%%~nc
  5.         set name=!name:acnnn_=_!
  6.         set name=!name:_asfghj=_!
  7.         if not "%%~nc"=="!name!" (
  8.                 echo %1\%%~nxc =^>!name!.mp3
  9.                 ren %1\%%~nxc !name!.mp3
  10.         )
  11. )
  12. pause
复制代码


作者: wang6610    时间: 2015-12-18 21:03
有劳二位坛友了,再次谢谢。文件在单位电脑上,上班试试。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3