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

[文本处理] 批处理如何删除指定范围内容文本,保留最后一个类似内容?

文本内容如下:
%
(MSN)
(PROGRAM NAME: 324B1A)
(Time: Tue Nov 06 20:39:03 2012)
(Cutter Name: D12)
G91G28Z0.
G90G54.1P45G00X0.Y0.
G5.1Q1
G00 G90 X-32.328 Y-44. S3000 M03
Z60.
Z50.5
Z49.555
G01 Z49.055 F1000.

G00 Z60.
G91G28Z0.
M05
M09
M30
%
%
(MSN)
(PROGRAM NAME: 324B1A)
(Time: Tue Nov 06 20:39:03 2012)
(Cutter Name: D12)
G91G28Z0.
G90G54.1P45G00X0.Y0.
G5.1Q1
G00 G90 X-32.328 Y-44. S3000 M03
Z60.
Z50.5
Z49.555
G01 Z49.055 F1000.

G00 Z60.
G91G28Z0.
M05
M09
M30
%
%
(MSN)
(PROGRAM NAME: 324B1A)
(Time: Tue Nov 06 20:39:03 2012)
(Cutter Name: D12)
G91G28Z0.
G90G54.1P45G00X0.Y0.
G5.1Q1
G00 G90 X-32.328 Y-44. S3000 M03
Z60.
Z50.5
Z49.555
G01 Z49.055 F1000.

G00 Z60.
G91G28Z0.
M05
M09
M30
%

要求批量出来的结果如下:
%
(MSN)
(PROGRAM NAME: 324B1A)
(Time: Tue Nov 06 20:39:03 2012)
(Cutter Name: D12)
G91G28Z0.
G90G54.1P45G00X0.Y0.
G5.1Q1
G00 G90 X-32.328 Y-44. S3000 M03
Z60.
Z50.5
Z49.555
G01 Z49.055 F1000.

G00 Z60.
G91G28Z0.

(MSN)
(PROGRAM NAME: 324B1A)
(Time: Tue Nov 06 20:39:03 2012)
(Cutter Name: D12)
G91G28Z0.
G90G54.1P45G00X0.Y0.
G5.1Q1
G00 G90 X-32.328 Y-44. S3000 M03
Z60.
Z50.5
Z49.555
G01 Z49.055 F1000.

G00 Z60.
G91G28Z0.

(MSN)
(PROGRAM NAME: 324B1A)
(Time: Tue Nov 06 20:39:03 2012)
(Cutter Name: D12)
G91G28Z0.
G90G54.1P45G00X0.Y0.
G5.1Q1
G00 G90 X-32.328 Y-44. S3000 M03
Z60.
Z50.5
Z49.555
G01 Z49.055 F1000.

G00 Z60.
G91G28Z0.
M05
M09
M30
%


M05
M09
M30
%
%
删掉,
但要保留最后的
M05
M09
M30
%



  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. Text = FSO.OpenTextFile("a.txt",1).ReadAll
  3. Str = "M05"&vbCrLf&"M09"&vbCrLf&"M30"&vbCrLf&"%"&vbCrLf&"%"
  4. FSO.CreateTextFile("b.txt",True).Write Replace(Text,Str,"")
复制代码
保存为vbs,试试看

TOP

回复 2# apang


   嗯 谢谢 是这样的效果。
但还是未满足批量,因为一个目录里有多个文本需要这样处理,处理后以原文名称命名。如果b...c..等下去的话会很麻烦的。
还是希望 能有CMD 或bat处理 感觉代码里的 a.txt 不能用 *.txt来表示。呵呵还是不太习惯用vbs。感谢了 apang !

TOP

  1. fr *.txt -r:"M05\r\nM09\r\nM30\r\n%\r\n%"
复制代码

TOP

猥琐一个,学某人的:
  1. @set @n=0//&md new&&(for %%a in (*.txt) do cscript.exe -nologo -e:jscript "%~f0"<"%%a">"new\%%a")&pause&exit/b
  2. WScript.Echo(WScript.StdIn.ReadAll().replace(/M05\r?\nM09\r?\nM30\r?\n\%\r?\n\%/g,''))
复制代码

TOP

回复 5# CrLf


    对! 就是这样 终于OK了,谢谢。
如果不建立 new文件夹 直接覆盖呢?代码要怎么改呢?

TOP

返回列表