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

[问题求助] VBS怎样判断等号后面是数字就在数字前面加^(已解决)

[复制链接]
发表于 2018-7-16 12:37:22 | 显示全部楼层 |阅读模式
本帖最后由 窄口牛 于 2018-7-17 07:05 编辑

判断文本中所有的等号后面的第一个字符(略过空格)是数字的话,就在这个数字前面加个^。
发表于 2018-7-16 12:52:10 | 显示全部楼层
用支持正则的脚本语言可以轻松办到,纯BAT实现起来很麻烦
发表于 2018-7-16 12:59:50 | 显示全部楼层
正则表达式:
(=\s*)(\d+)
\1^\2

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 1

查看全部评分

 楼主| 发表于 2018-7-16 13:08:42 | 显示全部楼层
群里求来了判断,网上搜到替换,但是还是弄不出来,vbs确实玩不来。
发表于 2018-7-16 13:28:15 | 显示全部楼层
回复 4# 窄口牛


    把你求到的代码更新到顶楼,我试试。

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 1

查看全部评分

 楼主| 发表于 2018-7-16 13:38:59 | 显示全部楼层
  1. Set regex=New RegExp

  2. regex.Global=True

  3. regex.Pattern="\=\s*(\d)"

  4. For Each i In regex.Execute(text)

  5. wsh.echo i.Submatches(0)

  6. Next
复制代码
  1. s=Split(text,"=")

  2. For i=1 To UBound(s)

  3. If IsNumeric(Left(LTrim(s(i)),1))then

  4. wsh.echo Left(LTrim(s(i)),1)
  5. else wsh.echo "no"
  6. End If

  7. Next

复制代码
  1. set fso = createobject("scripting.filesystemobject")
  2. ' 读取文件
  3. set stream = fso.opentextfile("a.txt",1)
  4. content = stream.readall()
  5. call stream.close()
  6. ' 替换字符串
  7. content = replace(content,"=","=^")
  8. content = replace(content,"*","♀")
  9. ' 保存文件
  10. set stream = fso.opentextfile("a.txt",2)
  11. call stream.write(content)
  12. call stream.close()
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 1

查看全部评分

发表于 2018-7-16 22:49:29 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-7-16 22:51 编辑

BAT放在源目录下执行.记得备份源文件.
  1. @set @n=0/*&echo off
  2. dir /a-d/s/b *.txt|cscript -nologo -e:jscript "%~f0"
  3. pause&exit /b */

  4. var fso=new ActiveXObject('scripting.FileSystemObject');
  5. while(!WSH.StdIn.AtEndOfStream){
  6.         var file=WSH.StdIn.ReadLine();
  7.         var fo=fso.OpenTextFile(file,1);
  8.         content=fo.ReadAll();
  9.         content=content.replace(/(=\s*)(\d+)/g,'$1^$2');
  10.         fo.close();
  11.         fo=fso.OpenTextFile(file,2);
  12.         fo.Write(content);
  13.         fo.close();
  14. }
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 1

查看全部评分

 楼主| 发表于 2018-7-17 07:06:18 | 显示全部楼层
非常完美,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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