Board logo

标题: [文本处理] 批处理怎样批量修改文件名? [打印本页]

作者: tomato007    时间: 2011-7-21 22:35     标题: 批处理怎样批量修改文件名?

我想把一个文件夹所有文件名中含有“-”的,改成" - ", 也就是在“-”前后加各加一个空格,请问怎样写,才能达到这个目的。

例如: 把文件名为“陈百强-偏偏喜欢你.mp3” ,改成“陈百强 - 偏偏喜欢你.mp3“。
作者: mxxcgzxxx    时间: 2011-7-21 22:41

本帖最后由 mxxcgzxxx 于 2011-7-21 22:42 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%1 in ('dir /b *.*') do (
  4.        set "a=%%1"
  5.        set b=!a:-= - !
  6.        ren "!a!" "!b!"
  7.        )
复制代码
保存为a.bat放在那个目录下运行,不要运行两次哦,不然空格越加越多
作者: CUer    时间: 2011-7-21 22:42

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b *.mp3') do (
  3.     set "oldname=%%a"
  4.     setlocal enabledelayedexpansion
  5.     set "newname=!oldname:-= - !"
  6.     ren "%%a" "!newname!"
  7.     endlocal
  8. )
复制代码

作者: tmplinshi    时间: 2011-7-21 22:51

本帖最后由 tmplinshi 于 2011-7-21 23:13 编辑
  1. dir /b *-* | pren -v "s/-/ - /g"
复制代码
pren 下载地址: http://bathome.net/thread-13342-1-1.html
作者: Batcher    时间: 2011-7-22 00:12

2# mxxcgzxxx


建议不要使用数字作为for循环的控制变量
作者: tomato007    时间: 2011-7-22 00:42

谢谢各位的指点。问题搞定了。
作者: mxxcgzxxx    时间: 2011-7-22 10:45

5# Batcher


哦,有什么缺点吗?主要是数字比字母好记顺序所以我爱数字呵, 是不是会和%1等冲突?




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