标题: [文本处理] 批处理怎样截取、替换指定字符? [打印本页]
作者: 还好家里 时间: 2012-9-5 03:13 标题: 批处理怎样截取、替换指定字符?
一、截取A与B之间的字符
D:\A
下有很多asp文件,每个文件都含
<!-- #include file="Inc/conn.asp" -->
这里的字符不规则
'欢迎访问官网www.baidu.com
<%
程序正文
%>
'邮箱[email]163@163.com[/email]
这里字符不规则
<!-- #include file="Inc/baidu.asp" -->
现在我只要
<%
程序正文
%>
也就是把
含 www.baidu.com 之前
含 '邮箱[email]163@163.com[/email] 之后
的东西删除掉
求帮忙写批处理
二、还有一个批处理问题,就是把文件名替换相应文件中的特定字符有没有办法?
例如:
001.txt文件中“很漂亮”替换成“txt001”
002.txt文件中“很漂亮”替换成“txt002”
003.txt文件中“很漂亮”替换成“txt003”
004.txt文件中“很漂亮”替换成“txt004”
…… ……
或者
001.txt文件中“很漂亮”替换成“A1”
002.txt文件中“很漂亮”替换成“A2”
002.txt文件中“很漂亮”替换成“A3”
这样按顺序替换
运行几批处理个完成也行
每个文件中只含有单独一个“很漂亮”
作者: forfiles 时间: 2012-9-5 07:45
- sed -i "0,/www.baidu.com/d; /'邮箱163@163.com/,$d" test.asp
复制代码
作者: forfiles 时间: 2012-9-5 07:47
- @echo off
- for %%a in (*.txt) do (
- sed -i "s/很漂亮/txt%%~na/" "%%a"
- )
复制代码
作者: 还好家里 时间: 2012-9-5 09:32
回复 2# forfiles
通过测试不行啊
作者: 还好家里 时间: 2012-9-5 09:33
回复 3# forfiles
通过测试也不行啊
作者: forfiles 时间: 2012-9-5 15:16
回复 5# 还好家里
报错信息是什么?
作者: 还好家里 时间: 2012-9-5 21:50
回复 6# forfiles
不报错,字符原封不动
作者: forfiles 时间: 2012-9-6 07:07
回复 7# 还好家里
把@echo off删掉,看看执行过程。
作者: apang 时间: 2012-9-9 14:15
开始学习vbs,权当练习。。。- sFolder = "D:\A" '源文件夹
- tFolder = "D:\B" '目标文件夹
- Set FSO = CreateObject("Scripting.FileSystemObject")
- If FSO.FolderExists(tFolder) = False Then
- FSO.CreateFolder(tFolder) '目标文件夹不存在则创建
- End if
- For Each File in FSO.GetFolder(sFolder).Files
- If LCase(FSO.GetExtensionName(File)) = "asp" Then
- '判断是否为asp文件
- Set sFile = FSO.OpenTextFile(File,1)
- '打开源文件
- Str = ""
- Do Until sFile.AtEndOfStream
- '循环读取每一行
- rLine = sFile.ReadLine
- If Left(rLine,2) = "<%" Then Flag = "1"
- If Flag = "1" Then Str = Str & rLine & vbCrLf
- If Left(rLine,2) = "%>" Then Flag = ""
- Loop
- sFile.Close
- tName = FSO.GetFile(File).Name
- FSO.CreateTextFile(tFolder&"\"&tName,2).Write Str
- '写入目标文件
- End If
- Next
- MsgBox "OK"
复制代码
- sFolder = "D:\A"
- tFolder = "D:\B"
- Set FSO = CreateObject("Scripting.FileSystemObject")
- If FSO.FolderExists(tFolder) = False Then
- FSO.CreateFolder(tFolder)
- End if
- For Each File in FSO.GetFolder(sFolder).Files
- If LCase(FSO.GetExtensionName(File)) = "txt" Then
- Set sFile = FSO.OpenTextFile(File,1)
- sName = FSO.GetFile(File).Name
- Str = Mid(sName,1,Len(sName)-4)
- Str = Replace(sFile.ReadAll,"很漂亮","txt"&Str)
- sFile.Close
- FSO.CreateTextFile(tFolder&"\"&sName,2).Write Str
- End If
- Next
- MsgBox "OK"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |