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

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

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



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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

高难度!
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

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

回复 4# tmplinshi

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

TOP

回复 5# luosiping360180


    你就不能一次性将问题讲清楚?

TOP

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

TOP

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

版主,能不能搞成用户可输入盘符,然后输入的盘符下的符合目标一的修改扩展名吗?这个对U盘等操作方便。

TOP

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

评分人数

TOP

:victory:
对 tmplinshi的感激之情如黄河泛滥啊。。。

TOP

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

TOP

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

TOP

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

评分人数

TOP

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

TOP

返回列表