找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22386|回复: 8

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

[复制链接]
发表于 2012-9-5 03:13:06 | 显示全部楼层 |阅读模式
一、截取A与B之间的字符

D:\A
下有很多asp文件,每个文件都含

<!-- #include file="Inc/conn.asp" -->
这里的字符不规则
'欢迎访问官网www.baidu.com

<%
程序正文
%>

'邮箱163@163.com
这里字符不规则
<!-- #include file="Inc/baidu.asp" -->



现在我只要
<%
程序正文
%>


也就是把
含 www.baidu.com 之前
含 '邮箱163@163.com 之后
的东西删除掉
求帮忙写批处理



二、还有一个批处理问题,就是把文件名替换相应文件中的特定字符有没有办法?
例如:
001.txt文件中“很漂亮”替换成“txt001”
002.txt文件中“很漂亮”替换成“txt002”
003.txt文件中“很漂亮”替换成“txt003”
004.txt文件中“很漂亮”替换成“txt004”
…… ……
或者
001.txt文件中“很漂亮”替换成“A1”
002.txt文件中“很漂亮”替换成“A2”
002.txt文件中“很漂亮”替换成“A3”
这样按顺序替换

运行几批处理个完成也行
每个文件中只含有单独一个“很漂亮”
发表于 2012-9-5 07:45:24 | 显示全部楼层
  1. sed -i "0,/www.baidu.com/d; /'邮箱163@163.com/,$d" test.asp
复制代码
发表于 2012-9-5 07:47:26 | 显示全部楼层
  1. @echo off
  2. for %%a in (*.txt) do (
  3.     sed -i "s/很漂亮/txt%%~na/" "%%a"
  4. )
复制代码
 楼主| 发表于 2012-9-5 09:32:26 | 显示全部楼层
回复 2# forfiles


    通过测试不行啊
 楼主| 发表于 2012-9-5 09:33:27 | 显示全部楼层
回复 3# forfiles


        通过测试也不行啊
发表于 2012-9-5 15:16:00 | 显示全部楼层
回复 5# 还好家里


    报错信息是什么?
 楼主| 发表于 2012-9-5 21:50:54 | 显示全部楼层
回复 6# forfiles


    不报错,字符原封不动
发表于 2012-9-6 07:07:14 | 显示全部楼层
回复 7# 还好家里


    把@echo off删掉,看看执行过程。
发表于 2012-9-9 14:15:29 | 显示全部楼层
开始学习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"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 12:53 , Processed in 0.028026 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表