Board logo

标题: [文件操作] 批处理如何遍历移动盘符,将其所有[320*240].3gp命名修改成.mp4? [打印本页]

作者: luosiping360180    时间: 2011-10-8 15:45     标题: 批处理如何遍历移动盘符,将其所有[320*240].3gp命名修改成.mp4?

其实之前一直都有开贴询问想关的问题:http://www.bathome.net/thread-13462-1-1.html,现在发现不是一下子可以解决,为方便查阅所以另开一贴(如版主不支持可删帖)

贴中10楼 awk 兄给出的代码【如下】,单张内存卡时,还是没有修改过来依旧是[320*240].3gp   (用我的U盘测试可以成功修改)难道是判断可移动盘符不准确,求更有效准确的判断方法
  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 16:31

请高手们指点下。。谢谢
作者: awk    时间: 2011-10-8 20:48

那个代码是通过检查盘符下面是否存在系统文件夹System Volume Information来判断移动盘符的,你看看内存卡所在盘符下面有没有这个文件夹吧。
作者: luosiping360180    时间: 2011-10-8 21:08

本帖最后由 luosiping360180 于 2011-10-8 22:03 编辑

用fsutil fsinfo drives 和 drivetype参数,识别出真正的可移动盘符,然后再运行修改的代码

查找了下,找到这个http://bathome.net/viewthread.php?tid=3569

修改成这样试用着
  1. @echo off
  2. <%~fs0 more +10>%temp%\GetU.vbs
  3. for /f %%a in ('cscript /nologo "%temp%\GetU.vbs"') do (
  4.   set "DriveU=%%a"
  5. )
  6. sren -v "s/\[320×240\]\.3gp$/.mp4/i" /s /a:-d-h-s "%DriveU%\*[320×240].3gp"
  7.             
  8. goto :eof
  9. ''''''''''''''''''''''''''''''''''''''''''''''''''''
  10. Set Fso = CreateObject("Scripting.FileSystemObject")
  11. Set B = Fso.Drives
  12. For Each A in B
  13.     If A.DriveType = 1 Then
  14.        aDisk = aDisk & A.DriveLetter & ": "
  15.     End If
  16. Next
  17. aDisk = Replace(aDisk, "A: ","")
  18. WScript.Echo aDisk
复制代码





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