Board logo

标题: [文件操作] 批处理怎样对指定目录下的文件进行批量修改扩展名? [打印本页]

作者: xzwcn    时间: 2013-3-30 21:35     标题: 批处理怎样对指定目录下的文件进行批量修改扩展名?

如一个目录 中包含N个扩展名为BAT的文件,如果要批量修改为CMD扩展名的,应该怎样操作呢?
  1. @echo off
  2. set /p Path=请输入名录入文件夹路径:
  3. ::类似这样的? ::for /l in () do  ren %Path%\*.bat do ren *.cmd
复制代码

作者: BAT-VBS    时间: 2013-3-30 22:23

  1. @echo off
  2. set /p mypath=请输入文件夹完整路径:
  3. for %%a in (%mypath%\*.bat) do (
  4.     ren "%%a" "%%~na.cmd"
  5. )
复制代码

作者: terse    时间: 2013-3-30 22:54

  1. ren *.bat *.cmd
复制代码

作者: xzwcn    时间: 2013-4-6 11:46

回复 2# BAT-VBS


    如果要对子目录下的文件也处理,要添加什么参数呢?

应用:如我想把一个U盘中的所有bat文件都修改为cmd的。
作者: CrLf    时间: 2013-4-6 12:59

本帖最后由 CrLf 于 2013-4-6 15:10 编辑
  1. cd /d U:\test\
  2. for /r /d %%a in (*) do ren "%%a\*.bat" *.cmd
复制代码

作者: xzwcn    时间: 2013-4-6 14:54

  1. @echo off
  2. set /p Path=请输入路径或拖入文件夹:
  3. set Path=%Path:"=%
  4. set /p OType=请输入要修改的类型:
  5. set /p Type=要修改为的类型:
  6. cd /d %Path%
  7. for /r /d %%a in (*) do ren *.%OType% *.%Type%
  8. start %Path%
  9. ping 127.1 -n 3
复制代码
回复 5# CrLf


为什么子目录下的修改不成功呢?
作者: CrLf    时间: 2013-4-6 15:10

回复 6# xzwcn


    漏了路径,已修改
作者: xzwcn    时间: 2013-4-6 19:09

本帖最后由 xzwcn 于 2013-4-6 22:15 编辑

回复 7# CrLf


    执行时为什么提示找不到指定文件呢?
文件存在于:
C:\Users\Administrator\Desktop\aa>tree /f
Folder PATH listing for volume win7
Volume serial number is 00000200 4C10:FB42
C:.
│  123.bat

└─ff
        dd.txt

执行结果:
请输入路径或拖入文件夹:C:\Users\Administrator\Desktop\aa
请输入要修改的类型:txt
要修改为的类型:bat
Press any key to continue . . .
The system cannot find the file specified.
Press any key to continue . . .
  1. @echo off
  2. set /p Path=请输入路径或拖入文件夹:
  3. set Path=%Path:"=%
  4. set /p OType=请输入要修改的类型:
  5. set /p Type=要修改为的类型:
  6. cd /d %Path%
  7. pause
  8. for /r /d %%a in (*) do ren "%%a\*.%OType% *.%Type%"
  9. pause
  10. start %Path%
  11. pause
  12. ping 127.1 -n 3
复制代码

作者: CrLf    时间: 2013-4-6 19:24

回复 8# xzwcn


    ren "%%a\*.%OType%" "*.%Type%"




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