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

[问题求助] VBS脚本如何把文本中两个指定字符串之间的内容另存为新的文本文件?

[复制链接]
发表于 2012-2-6 15:34:19 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-14 20:02 编辑

vbs如何把2个字符串("%",包含字符串的内容)之间的内容分割为新的文本文件。

最好不要借助第三方工具,谢谢

如以下文本中有很多个”%“,而且都是偶数个。如何把2个”%“之间的内容(包含2个”%“)分割为一个新的文本文件,谢谢.
%
X1.6427Y-.1277Z.3317
X1.5239Y.0362Z.3398
X1.4176Y.2086Z.3477
%
%
X1.6427Y-.1277Z.3317
X1.5239Y.0362Z.3398
X1.4176Y.2086Z.3477
X1.328Y.3813Z.3552
X1.2674Y.5177Z.3608
X1.199Y.7014Z.368
X1.1422Y.8978Z.3752
X1.1004Y1.0978Z.3821
X1.0738Y1.3004Z.3886
X1.0627Y1.5044Z.3947
X1.0671Y1.7086Z.4004
X1.0868Y1.9118Z.4056
X1.1218Y2.1129Z.4103
X1.1718Y2.3106Z.4145
X1.2364Y2.5039Z.4181
X1.3151Y2.6917Z.4212
X1.4075Y2.8729Z.4237
%
%
X1.328Y.3813Z.3552
X1.2674Y.5177Z.3608
X1.199Y.7014Z.368
X1.1422Y.8978Z.3752
X1.1004Y1.0978Z.3821
X1.0738Y1.3004Z.3886
X1.0627Y1.5044Z.3947
X1.0671Y1.7086Z.4004
X1.0868Y1.9118Z.4056
%
%
X1.2674Y.5177Z.3608
X1.199Y.7014Z.368
X1.1422Y.8978Z.3752
X1.1004Y1.0978Z.3821
X1.0738Y1.3004Z.3886
X1.0627Y1.5044Z.3947
X1.0671Y1.7086Z.4004
X1.0868Y1.9118Z.4056
X1.1218Y2.1129Z.4103
X1.1718Y2.3106Z.4145
X1.2364Y2.5039Z.4181
X1.3151Y2.6917Z.4212
X1.4075Y2.8729Z.4237
%
%
X1.1218Y2.1129Z.4103
X1.1718Y2.3106Z.4145
X1.2364Y2.5039Z.4181
X1.3151Y2.6917Z.4212
X1.4075Y2.8729Z.4237
%
发表于 2012-2-6 16:34:34 | 显示全部楼层

'Author: Demon
'Website: http://demon.tw
'Date: 2012/2/6
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = New RegExp
re.Global = True
re.Pattern = "%([^%]+)%"
str = fso.OpenTextFile("data.txt").ReadAll
Set ms = re.Execute(str)
For i = 0 To ms.Count - 1
    fso.OpenTextFile(i & ".txt", 2, True).Write ms.Item(i).Submatches(0)
Next

评分

参与人数 1技术 +1 收起 理由
ss1268 + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-2-7 07:49:44 | 显示全部楼层
本帖最后由 ss1268 于 2012-2-7 11:56 编辑

回复 2# Demon


    谢谢老师的解答,基本是这种效果。
还有一个疑问,请问如何在头尾都把%带上,谢谢!

同时一下脚本出错,不知哪里有问题,还亲老师帮忙看看,
  1. ' -- Start Script
  2. Call Main()
  3. '////////////////////
  4. ' Sub Declaration
  5. ' ////////////////////
  6. Sub Main()
  7. Dim fso

  8. Set fso = CreateObject("Scripting.FileSystemObject")
  9. Str = fso.OpenTextFile("data.text").ReadAll

  10. ShowString(RegExpTest("%([^%]+)%", Str))

  11. Set fso = Nothing
  12. End Sub

  13. Function RegExpTest(patrn, Str)
  14.    Dim regEx, Match, Matches, RetStr, i   ' Create variable.
  15.    Set regEx = New RegExp
  16.    regEx.Pattern = patrn
  17.    regEx.IgnoreCase = True
  18.    regEx.Global = True
  19.    Set Matches = regEx.Execute(Str)
  20.         For i = 0 To Matches.Count - 1
  21.         fso.OpenTextFile(i & ".nc", 2, True).Write Matches.Item(i).Submatches(0)
  22.         Next       
  23.    RegExpTest = RetStr
  24. End Function
复制代码
发表于 2012-2-7 19:54:18 | 显示全部楼层
本帖最后由 samsinn 于 2012-2-7 20:53 编辑

重新再输入好了
  1. Set fs = CreateObject("Scripting.FileSystemObject")
  2. szBuf = InputBox( "请输入文本路径:", "输入", "c:\data.txt" )
  3. LINK = Trim(szBuf)
  4. If fs.FileExists(LINK) Then
  5.         Set File_Open = Fs.OpenTextFile(LINK,1)
  6.         Set File_Open2 = Fs.OpenTextFile("c:\newdata.txt",2,true)
  7.         Line=File_Open.Readall
  8.         Line="%"&line&"%"     '文本的头尾加上符号%
  9.         File_Open2.WriteLine Line
  10.         File_Open2.Close
  11. wsh.quit
  12. Else
  13. Wscript.echo "找不到文件!本程序将退出!"
  14. Wscript.Quit
  15. End If
复制代码
l
ms.Item(i).Submatches(0) 换成 "%"&ms.Item(i).Submatches(0)&"%"
 楼主| 发表于 2012-2-7 21:24:51 | 显示全部楼层
回复 5# samsinn


    能否给出完整的代码,谢谢!!!
我不懂vbs,因为我用其他方法实在是整不出来,才想到用vbs脚本完成,谢谢你的帮助!!!
发表于 2012-2-8 10:30:13 | 显示全部楼层
'Author: Demon
'Website: http://demon.tw
'Date: 2012/2/6
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set re = New RegExp
  3. re.Global = True
  4. re.Pattern = "%([^%]+)%"
  5. str = fso.OpenTextFile("data.txt").ReadAll
  6. Set ms = re.Execute(str)
  7. For i = 0 To ms.Count - 1
  8.     fso.OpenTextFile(i & ".txt", 2, True).Write "%"&ms.Item(i).Submatches(0)&"%"
  9. Next
复制代码
第8行代码改一下就好啦
 楼主| 发表于 2012-2-8 12:25:39 | 显示全部楼层
回复 7# samsinn


    谢谢你。已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:27 , Processed in 0.012299 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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