标题: [文本处理] 如何替换指定特征的字符串 [打印本页]
作者: kissbzm 时间: 2018-2-9 22:27 标题: 如何替换指定特征的字符串
本帖最后由 pcl_test 于 2018-3-28 05:37 编辑
指定字符行替换后行所以 的字符
指定特征 ;www 后面的 1,0=·啊2 替换成 a总·bc
1.txt 比如
1,0=·啊2|〓┤1111..11
1,0=·啊2|〓┤1111..11
1,0=·啊2|〓┤1111..11
;www
1,0=·啊2|〓┤1111..11
1,0=·啊2|〓┤1111..11
1,0=·啊2|12|〓1111..11
D:\测试\*.txt文件
1,0=·啊2|〓┤1111..11
1,0=·啊2|〓┤1111..11
1,0=·啊2|〓┤1111..11
;www
a总·bc|〓┤1111..11
a总·bc|〓┤1111..11
a总·bc|12|〓1111..11
作者: yhcfsr 时间: 2018-2-10 00:29
本帖最后由 yhcfsr 于 2018-2-10 00:31 编辑
PowerShell
怎么用,我在论坛很多帖子都讲过,不再口啰嗦- $ScDir="F:\Test Dir" #设置文件目录
- Get-ChildItem -Path $ScDir -Recurse -File|ForEach-Object{
- $flag=0;$string=$null;
- $content=Get-Content $_.FullName
- foreach($line in $content){
- if($line -match ';www'){$flag=1}
- if($flag -eq 1){$line=($line -replace '1,0=·啊2','a总·bc');}
- $string+=($line+"`r`n");
- }
- $string|Out-File -FilePath $_.FullName;
- }
复制代码
作者: kissbzm 时间: 2018-2-10 01:11
回复 2# yhcfsr
2003不可以 我安装的是1.0版本
作者: /zhqsystem/zhq 时间: 2018-2-10 19:06
由于涉及到特殊字符不一定都可以处理,以下是样本代码:
-
- @Echo Off
- set "$=;www"
- for /f "delims=" %%i in ('dir/a-d/s/b "%~dp0*.txt"')do (
- call:1 "%%~fi"
- )
- pause
- goto:eof
- :1
- if not defined $ (echo,错误)>>"%~dp0错误记录.log"&goto:eof
- set "#="
- for /f "eol= tokens=* delims=" %%i in ('type "%~f1"')do (
- if /i "%%i"=="%$%" set "#=y"
- if not defined # (echo,%%i
- )else (
- for /f "eol= tokens=1,* delims=|" %%j in ("%%i")do (
- if /i "%%j"=="1,0=·啊2" (
- echo,a总·bc^|%%k
- )else (
- echo,%%i
- )
- )
- )
- )
- goto:eof
-
复制代码
作者: WHY 时间: 2018-2-11 02:18
vbs 脚本- Set fso = CreateObject("Scripting.FileSystemObject")
-
- For Each f In fso.GetFolder(".").Files
- strFile = f.Path
- If LCase(Right(strFile, 4)) = ".txt" Then
- Set objFile = fso.OpenTextFile(strFile, 1)
- arr = Split(objFile.ReadAll(), ";www")
- objFile.Close()
- If UBound(arr) >= 1 Then arr(1) = Replace(arr(1), "1,0=·啊2", "a总·bc")
- fso.OpenTextFile(strFile, 2).Write(Join(arr, ";www"))
- End If
- Next
-
- MsgBox "Done"
复制代码
作者: kissbzm 时间: 2018-2-12 11:28
本帖最后由 kissbzm 于 2018-2-12 11:34 编辑
回复 5# WHY
F:\1\" 所以文件夹(子文件夹)的txt一起修改
可以加个 吗
作者: WHY 时间: 2018-2-24 11:48
递归遍历文件夹就行了- srcDir = "E:\Test"
- Set fso = CreateObject("Scripting.FileSystemObject")
-
- ReplaceString srcDir
-
- Function ReplaceString(ByRef srcDir)
- For Each f In fso.GetFolder(srcDir).Files
- strFile = f.Path
- If LCase(Right(strFile, 4)) = ".txt" Then
- Set objFile = fso.OpenTextFile(strFile, 1)
- arr = Split(objFile.ReadAll(), ";www")
- objFile.Close()
- If UBound(arr) >= 1 Then arr(1) = Replace(arr(1), "1,0=·啊2", "a总·bc")
- fso.OpenTextFile(strFile, 2).Write(Join(arr, ";www"))
- End If
- Next
- For Each fd In fso.GetFolder(srcDir).SubFolders
- ReplaceString fd.Path
- Next
- End Function
-
- MsgBox "Done"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |