[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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. )
复制代码

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

TOP

愤怒的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
复制代码

TOP

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

TOP

回复 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
等等。。。。

TOP

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



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

如何修改这个代码?

TOP

回复 6# ygqiang


dir/b/s c:\*.flv

TOP

回复 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. )
复制代码

TOP

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


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



   
你好。1楼重新更新了下具体的需求。。。
谢谢

TOP

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

TOP

本帖最后由 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

TOP

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

TOP

返回列表