Board logo

标题: [文件操作] [已解决]批处理如何批量删除/去除子文件夹下所有文件文件名中的特定字符串 [打印本页]

作者: ygqiang    时间: 2015-3-4 13:23     标题: [已解决]批处理如何批量删除/去除子文件夹下所有文件文件名中的特定字符串

本帖最后由 pcl_test 于 2016-7-18 13:05 编辑

win系统c盘不同层级的子目录下,文件名前缀都是:0001.*网-,如何用bat删除这些前缀?

c盘不同层级的子目录下,有一些flv文件,文件名前缀为:0001.*网-
通过bat批处理,如何将这些文件名的前缀全部删除??


比如某个子目录aa下面,有一些文件是:
0001.优酷网-xxx.flv
0001.优酷网-xx.flv
0001.优酷网-x.flv
....

另一个子目录bb下面,有一些文件是:
0001.酷六网-yyy.flv
0001.酷六网-yy.flv
0001.酷六网-y.flv
.....

批处理处理后的文件名是:
xxx.flv
xx.flv
x.flv
....


yyy.flv
yy.flv
y.flv
.....

已解决。。
  1. echo 本地磁盘:
  2. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3. fsutil fsinfo drivetype %%a: | find "固定">nul && (echo %%a) && (
  4. @for /f "tokens=1* delims=-" %%i in ('dir /b /s "%%a:\*.flv" ^| findstr "0001.*网-"') do ren "%%i-%%j" "%%j"
  5. )
  6. )
复制代码

作者: 愤怒的CMD    时间: 2015-3-4 13:51

  1. @for /f "tokens=1* delims=-" %%i in ('dir/b *.flv') do ren %%i-%%j %%j
复制代码

作者: ygqiang    时间: 2015-3-4 14:15

愤怒的CMD 发表于 2015-3-4 13:51



   
多谢。。。。

如果文件夹路径是:c:\000    代码运行成功。
如果文件夹路径是:c:\000\新建文件夹   代码运行后不能修改文件名。如何修改?
  1. @for /f "tokens=1* delims=-" %%i in ('dir/b "C:\000\新建文件夹\*.flv"') do ren %%i-%%j %%j
复制代码

作者: 愤怒的CMD    时间: 2015-3-4 14:19

  1. @for /f "tokens=1* delims=-" %%i in ('dir/b/s "C:\000\新建文件夹\*.flv"') do ren %%i-%%j %%j
复制代码

作者: ygqiang    时间: 2015-3-4 14:24

回复 2# 愤怒的CMD


    在请教下。。。

文件名字分别是:
三国演义1
三国演义2
三国演义3
三国演义4
三国演义5
三国演义6
三国演义7
三国演义8
三国演义9
三国演义10
三国演义11
三国演义12
等等。。。。


如果用bat批处理修改文件名如下?
三国演义001
三国演义002
三国演义003
三国演义004
三国演义005
三国演义006
三国演义007
三国演义008
三国演义009
三国演义010
三国演义011
三国演义012
等等。。。。
作者: ygqiang    时间: 2015-3-4 14:35

愤怒的CMD 发表于 2015-3-4 14:19



    多谢。。。如果是将c盘目录下所有符合条件的flv视频文件名,全部删除前缀 。。

如何修改这个代码?
作者: 愤怒的CMD    时间: 2015-3-4 14:39

回复 6# ygqiang


dir/b/s c:\*.flv
作者: 愤怒的CMD    时间: 2015-3-4 14:59

回复 5# ygqiang
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ('dir/b *.flv') do (
  3.     set var=%%~ni
  4.     set var=!var:三国演义=00!
  5.     set var=!var:~-3!
  6.     ren %%i 三国演义!var!%%~xi
  7. )
复制代码

作者: ygqiang    时间: 2015-3-4 18:09

本帖最后由 ygqiang 于 2015-3-4 18:55 编辑
回复  ygqiang


dir/b/s c:\*.flv
愤怒的CMD 发表于 2015-3-4 14:39



   
你好。1楼重新更新了下具体的需求。。。
谢谢
作者: pcl_test    时间: 2015-3-4 19:19

回复 9# ygqiang
如果只要更名文件名前缀是0001.*网-的flv文件,在2楼的代码相应位置改成这样
  1. dir /b /s "C:\*.flv" ^| findstr "0001.*网-"
复制代码

作者: ygqiang    时间: 2015-3-4 19:57

本帖最后由 ygqiang 于 2015-3-4 20:06 编辑
回复  ygqiang
如果只要更名文件名前缀是0001.*网-的flv文件,在2楼的代码相应位置改成这样
pcl_test 发表于 2015-3-4 19:19



   
你好。。。下面这个bat代码,运行后,没效果。。。
  1. @for /f "tokens=1* delims=-" %%i in ('dir /b /s "C:\000\*.flv" ^| findstr "0001.*网-"') do ren %%i-%%j %%j
复制代码
C:\000这个是测试目录。。。。



主要问题是,下面2个符合条件的文件,不能删除文件名前缀。。
0001.优酷网-bb - 副本.flv
0001.酷六网-83·66节回春医疗保健操(舞曲金典版) 标清[流畅版].flv
作者: pcl_test    时间: 2015-3-4 20:19

回复 11# ygqiang
文件名有空格嘛,用英文双引号括起来
  1. for /f "tokens=1* delims=-" %%i in ('dir /b /s "C:\*.flv" ^| findstr "0001.*网-"') do ren "%%i-%%j" "%%j"
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2