Board logo

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

作者: luosiping360180    时间: 2011-7-29 17:37     标题: [已解决]怎样搜索所有移动盘并根据条件修改文件扩展名?

修改文件扩展名,因为有同类的1000多个(例如:72家租客[320×240].3gp)需要修改成:72家租客.mp4,文件夹中可能还含有3GP为扩展名的文件,所以向高手指教下



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

高难度!
作者: luosiping360180    时间: 2011-7-29 19:07

本帖最后由 luosiping360180 于 2011-7-29 19:22 编辑

回复 4# tmplinshi

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

回复 5# luosiping360180


    你就不能一次性将问题讲清楚?
作者: tmplinshi    时间: 2011-7-29 19:20

本帖最后由 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
作者: luosiping360180    时间: 2011-7-29 19:42

谢谢tmplinshi 版主,上面代码"C\*[320×240].3gp"改成"\*[320×240].3gp",目录下测试成功!!

版主,能不能搞成用户可输入盘符,然后输入的盘符下的符合目标一的修改扩展名吗?这个对U盘等操作方便。
作者: tmplinshi    时间: 2011-7-29 19:50

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

作者: luosiping360180    时间: 2011-7-29 19:57

:victory:
对 tmplinshi的感激之情如黄河泛滥啊。。。
作者: Hello123World    时间: 2011-7-31 12:29

  1. @echo off
  2. For /f "delims=" %%i in ('dir /s /b *[320×240]*.3gp') do Ren "%%i" "%%~ni.mp4"
  3. pause
  4. ::将批处理放在3gp文件所在的目录即可。
复制代码

作者: luosiping360180    时间: 2011-10-7 23:23

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

作者: awk    时间: 2011-10-8 02:00

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

作者: luosiping360180    时间: 2011-10-8 11:43

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





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