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

[文本处理] [已解决]批处理批量替换文件名

E:\aa\01-学习-bat.txt    E:\aa\02-学习-htm.txt     E:\aa\03-学习-vbs.txt  . ...有很多

批量替换文件名,  把 "  学习 " 两字改成 " 其它字符或数字 "

[ 本帖最后由 dengx 于 2009-10-20 21:16 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2

  1. set r=不学习
  2. for %%i in (e:\aa\*-学习-bat.txt) do (
  3. call,set s=%%i
  4. call,set s=%%s:~,9%%%r%%%s:~-8%%
  5. call,ren "%%i" "%%s%%"
  6. )
复制代码

TOP

来个VBS,可以把“不学习”改成你想要改的字。
  1. strFolder = "E:\aa\"
  2. strString = "不学习"
  3. Set objFSO = CreateObject("Scripting.FileSystemObject")
  4. Set objFolder = objFSO.GetFolder(strFolder)
  5. Set allFiles = objFolder.Files
  6. For Each File In allFiles
  7.     If Lcase(Right(File.Name, 11)) = "-学习-bat.txt" Then
  8.         strNewName = Replace(File.Name, "学习", strString)
  9.         objFSO.MoveFile File, strFolder & strNewName
  10.     End If
  11. Next
复制代码
(*^_^*)

TOP

2楼的bat 的没效果     ... . ..

如果要替换的是数字不是字符, 3楼也不能运行

[ 本帖最后由 dengx 于 2009-10-15 14:42 编辑 ]

TOP

开始题目有些误解,   修正了一下

[ 本帖最后由 dengx 于 2009-10-15 14:46 编辑 ]

TOP

回复 4楼 的帖子

2楼和3楼的代码都是根据你顶楼的要求写出的代码。

如果你的要求要改变,当然代码也要改变。

你5楼的要求我不是很明白,请详细说明,或者举例说明。

再次,要求把更新的问题,更新到顶楼,切勿跟帖更新。
(*^_^*)

TOP

回复 5楼 的帖子

这样再试试:
  1. @Echo off&Setlocal Enabledelayedexpansion
  2. Set strFolder=E:\aa
  3. Set strChgName=不学习
  4. For %%i in (%strFolder%\*学习*.txt) do (
  5.     Set name=%%~ni
  6.     Set name=!name:学习=%strChgName%!
  7.     Ren "%%i" "!name!%%~xi"
  8. )
  9. pause
复制代码

[ 本帖最后由 keen 于 2009-10-15 16:28 编辑 ]
(*^_^*)

TOP

原帖由 keen 于 2009-10-15 14:50 发表
2楼和3楼的代码都是根据你顶楼的要求写出的代码。

如果你的要求要改变,当然代码也要改变。

你5楼的要求我不是很明白,请详细说明,或者举例说明。

再次,要求把更新的问题,更新到顶楼,切勿跟帖更新。



谢谢你的回复, 5楼的意思是说, 开始1楼的题目写错, 导致大家误解, 后来已经修改正, 1楼也更新了

TOP

7楼正确, 如果只想替换前五位数字呢?  应该怎么修改

TOP

原帖由 dengx 于 2009-10-19 10:11 发表
7楼正确, 如果只想替换前五位数字呢?  应该怎么修改

变成前五位数字...看不懂啊
  1. set r=不学习
  2. for %%i in (e:\aa\*-学习-*.txt) do (
  3. call,set s=%%i
  4. call,set s=%%s:~,9%%%r%%%s:~-8%%
  5. call,ren "%%i" "%%s%%"
  6. )
复制代码

反正我看vbs啊htm啊都是三个字符...偷个小懒来拿分...(和keen大的代码还是有不同的!)
话说如果只替换中间那个,就是 学习-学习-学习.txt-->学习-不学习-学习.txt的话...就只能for潜嵌套了吧

TOP

多级目录替换

比如要修改的文件不都是在E:\aa下面,有些是在E:\bb或者E:\bb\cc下面,请问目录改如何定义

TOP

返回列表