标题: [文本处理] 批处理如何把某文件夹里的所有TXT文本的内容批量替换? [打印本页]
作者: zilove 时间: 2009-12-24 15:52 标题: 批处理如何把某文件夹里的所有TXT文本的内容批量替换?
有很多的TXT文本,每个里面的规定内容替换成其他的,有多个关键字,!
也就是:
把某文件夹里面的所有TXT文档里面的
【嘎嘎】全部替换成【哈哈】
【拉拉】全部替换成【嘻嘻】
【123456】 全部替换成【654321】
不知道说的清楚不,·~ 呵呵 ~
作者: zilove 时间: 2009-12-24 15:57
替换应该很慢,可以设置成 替换第一个后隔30秒再替换第二个。·
作者: neorobin 时间: 2009-12-24 16:40
-
- @echo off & setlocal enabledelayedexpansion
- for /r "D:\某文件夹" %%f in (*.txt) do (
- cd.>"%%~dpf~"
- for /f "usebackq delims=" %%l in ("%%~ff") do (
- (set ln=%%l)&(set ln=!ln:【嘎嘎】=【哈哈】!)&(set ln=!ln:【拉拉】=【嘻嘻】!)&(set ln=!ln:【123456】=【654321】!)
- (set /p=!ln!<nul)& echo.
- )>>"%%~dpf~"
- del /f /q "%%~ff"
- cd /d "%%~dpf"
- ren "%%~dpf~" "%%~nf.~tx"
- )
- for /r "D:\某文件夹" %%f in (*) do (
- cd /d "%%~dpf"
- ren *.~tx *.txt
- )
- exit /b
复制代码
作者: neorobin 时间: 2009-12-24 16:43 标题: 回复 2楼 的帖子
不会很慢, 主要耗时间的是文件的数目, 越多越耗, 文件大小影响不大
作者: zilove 时间: 2009-12-24 17:09
感谢呀,~~ 我测试下,·~ 呵呵,
作者: keen 时间: 2009-12-24 22:02
- strFolder = "d:\aaa"
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- Set colFiles = objFSO.GetFolder(strFolder).Files
- For each file in colFiles
- strfilename = file.Name
- If objFSO.GetExtensionName(strfilename) = Lcase("txt") Then
- If file.size = 0 Then
- WSH.Echo file & "是空文件,删除空文件重来!"
- EXIT For
- End If
- Set objTextStream = objFSO.OpenTextFile(file, 1, -2)
- strString = objTextStream.ReadAll
- strString = replace(strString, "【嘎嘎】", "【哈哈】")
- strString = replace(strString, "【拉拉】", "【嘻嘻】")
- strString = replace(strString, "【123456】", "【654321】")
- objTextStream.Close
- Set objTextFile = objFSO.OpenTextFile(file, 2, -2)
- objTextFile.Write strString
- End If
- Next
复制代码
作者: nerfg002 时间: 2009-12-24 22:43
用wfr吧 比较好用
作者: zilove 时间: 2010-7-17 02:42
OK 了。。感谢。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |