无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3776|回复: 3
打印 上一主题 下一主题

[求助] 如何用批处理删除统一文件夹中文件名中的指定字符串

[复制链接]
跳转到指定楼层
1#
发表于 2015-12-18 09:17:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wang6610 于 2015-12-18 09:19 编辑

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


  谢谢
2#
发表于 2015-12-18 16:31:27 | 只看该作者
这个挺复杂,好在没白忙活。
@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
回复

使用道具 举报

3#
发表于 2015-12-18 19:03:53 | 只看该作者
本帖最后由 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
复制代码

回复

使用道具 举报

4#
 楼主| 发表于 2015-12-18 21:03:52 | 只看该作者
有劳二位坛友了,再次谢谢。文件在单位电脑上,上班试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 04:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表