找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32484|回复: 11

[文件操作] [已解决]怎样搜索所有移动盘并根据条件修改文件扩展名?

[复制链接]
发表于 2011-7-29 17:37:54 | 显示全部楼层 |阅读模式
修改文件扩展名,因为有同类的1000多个(例如:72家租客[320×240].3gp)需要修改成:72家租客.mp4,文件夹中可能还含有3GP为扩展名的文件,所以向高手指教下



目标 一、能不能搞成当具有[320×240]和.3gp二个条件时才修改成.MP4
目标二、路径可以任意目录下?或者用户输入某盘符(如C:)就将此盘符下(包括子目录)符合上述目标一条件进行修改扩展名。
目标三、因为下载给人家后,在各个移动盘下都是[320×240].3gp文件,能不能搞成搜索所有移动盘并根据条件修改文件扩展名?望高手指点下,本人在10楼贴出的代码不能成功执行。
关键代码版主已经在7楼贴出代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-29 18:23:33 | 显示全部楼层
高难度!
 楼主| 发表于 2011-7-29 19:07:02 | 显示全部楼层
本帖最后由 luosiping360180 于 2011-7-29 19:22 编辑

回复 4# tmplinshi

首先,谢谢大家的回复,由于上面描述不够清楚,目标为
   目标 一、能不能搞成当具有[320×240].3gp二个条件时才修改成.MP4
   目标二、路径可以任意目录下?或者用户输入某盘符(如C:)就将此盘符下(包括子目录)符合上述目标一条件进行修改扩展名。
发表于 2011-7-29 19:18:16 | 显示全部楼层
回复 5# luosiping360180


    你就不能一次性将问题讲清楚?
发表于 2011-7-29 19:20:47 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-7-29 19:50 编辑
    目标 一、能不能搞成当具有[320×240]和.3gp二个条件时才修改成.MP4
    目标二、路径可以任意目录下?或者用户输入某盘符(如C:)就将此盘符下(包括子目录)符合上述目标一条件进行修改扩展名。
luosiping360180 发表于 2011-7-29 19:07
  1. sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "C:\*[320×240].3gp"
复制代码
sren 下载地址:
http://bathome.net/thread-13442-1-1.html
 楼主| 发表于 2011-7-29 19:42:23 | 显示全部楼层
谢谢tmplinshi 版主,上面代码"C\*[320×240].3gp"改成"\*[320×240].3gp",目录下测试成功!!

版主,能不能搞成用户可输入盘符,然后输入的盘符下的符合目标一的修改扩展名吗?这个对U盘等操作方便。
发表于 2011-7-29 19:50:21 | 显示全部楼层
回复 7# luosiping360180
  1. @echo off
  2. set /p d=请输入盘符:
  3. sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%d:~0,1%:\*[320×240].3gp"
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-7-29 19:57:16 | 显示全部楼层
:victory:
对 tmplinshi的感激之情如黄河泛滥啊。。。
发表于 2011-7-31 12:29:45 | 显示全部楼层
  1. @echo off
  2. For /f "delims=" %%i in ('dir /s /b *[320×240]*.3gp') do Ren "%%i" "%%~ni.mp4"
  3. pause
  4. ::将批处理放在3gp文件所在的目录即可。
复制代码
 楼主| 发表于 2011-10-7 23:23:22 | 显示全部楼层
本帖最后由 luosiping360180 于 2011-10-8 00:07 编辑
  1. setlocal enabledelayedexpansion
  2. cls
  3. for %%i in (c d e f g h i j k l m n o p q  s t u v w x y z) do (if exist %%i: (
  4. if not exist "%%i:\System Volume Information" (set i=%%i&sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "!i:~0,1!:\*[320×240].3gp")))
  5. pause
复制代码
U盘的其中一个有[320×240].3gp文件,但就是不能成功执行(U盘刷成二个盘,放在第二盘符下),请高手指教

当只剩下有[320×240].3gp文件的U盘符时,又可以成功修改掉扩展名
然后改成这样,问题依旧存在
  1. echo off
  2. setlocal enabledelayedexpansion
  3. cls
  4. for %%i in (c d e f g h i j k l m n o p q  s t u v w x y z) do (if exist %%i: (
  5. if not exist "%%i:\System Volume Information" (echo %%i盘 是内存卡&set /a n+=1&set pf!n!=%%i)))
  6. echo !pf1!
  7. echo !pf2!
  8. echo !pf3!

  9. pause

  10. sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%pf3%:\*[320×240].3gp"||sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%pf2%:\*[320×240].3gp"||sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%pf1%:\*[320×240].3gp"


  11. pause
复制代码
发表于 2011-10-8 02:00:18 | 显示全部楼层
回复 10# luosiping360180
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (c d e f g h i j k l m n o p q  s t u v w x y z) do (
  4.     if exist %%i: (
  5.         if not exist "%%i:\System Volume Information" (
  6.             dir %%i:\*[320×240].3gp >nul 2>&1 && sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%%i:\*[320×240].3gp"
  7.         )
  8.     )
  9. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-10-8 11:43:29 | 显示全部楼层
本帖最后由 luosiping360180 于 2011-10-8 14:54 编辑

谢谢 awk 兄

刚才帮人家下载,就他单张内存卡时,还是没有修改过来依旧是[320*240].3gp
但下面的代码输入内存卡的盘符,就成功执行。
  1. @echo off
  2. set /p d=请输入盘符:
  3. sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%d:~0,1%:\*[320×240].3gp"
  4. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:35 , Processed in 0.023465 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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