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

[文本处理] 批处理怎样截取、替换指定字符?

一、截取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”
这样按顺序替换

运行几批处理个完成也行
每个文件中只含有单独一个“很漂亮”

  1. sed -i "0,/www.baidu.com/d; /'邮箱163@163.com/,$d" test.asp
复制代码

TOP

  1. @echo off
  2. for %%a in (*.txt) do (
  3.     sed -i "s/很漂亮/txt%%~na/" "%%a"
  4. )
复制代码

TOP

回复 2# forfiles


    通过测试不行啊

TOP

回复 3# forfiles


        通过测试也不行啊

TOP

回复 5# 还好家里


    报错信息是什么?

TOP

回复 6# forfiles


    不报错,字符原封不动

TOP

回复 7# 还好家里


    把@echo off删掉,看看执行过程。

TOP

开始学习vbs,权当练习。。。
  1. sFolder = "D:\A"  '源文件夹
  2. tFolder = "D:\B"  '目标文件夹
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. If FSO.FolderExists(tFolder) = False Then
  5.   FSO.CreateFolder(tFolder) '目标文件夹不存在则创建
  6. End if
  7. For Each File in FSO.GetFolder(sFolder).Files
  8.   If LCase(FSO.GetExtensionName(File)) = "asp" Then
  9.   '判断是否为asp文件
  10.     Set sFile = FSO.OpenTextFile(File,1)
  11.     '打开源文件
  12.     Str = ""
  13.     Do Until sFile.AtEndOfStream
  14.     '循环读取每一行
  15.       rLine = sFile.ReadLine
  16.       If Left(rLine,2) = "<%" Then Flag = "1"
  17.       If Flag = "1" Then Str = Str & rLine & vbCrLf
  18.       If Left(rLine,2) = "%>" Then Flag = ""
  19.     Loop
  20.     sFile.Close
  21.     tName = FSO.GetFile(File).Name
  22.     FSO.CreateTextFile(tFolder&"\"&tName,2).Write Str
  23.     '写入目标文件
  24.   End If
  25. Next
  26. MsgBox "OK"
复制代码
  1. sFolder = "D:\A"
  2. tFolder = "D:\B"
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. If FSO.FolderExists(tFolder) = False Then
  5.   FSO.CreateFolder(tFolder)
  6. End if
  7. For Each File in FSO.GetFolder(sFolder).Files
  8.   If LCase(FSO.GetExtensionName(File)) = "txt" Then
  9.     Set sFile = FSO.OpenTextFile(File,1)
  10.     sName = FSO.GetFile(File).Name
  11.     Str = Mid(sName,1,Len(sName)-4)
  12.     Str = Replace(sFile.ReadAll,"很漂亮","txt"&Str)
  13.     sFile.Close
  14.     FSO.CreateTextFile(tFolder&"\"&sName,2).Write Str
  15.   End If
  16. Next
  17. MsgBox "OK"
复制代码

TOP

返回列表