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

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

本帖最后由 窄口牛 于 2018-7-17 07:05 编辑

判断文本中所有的等号后面的第一个字符(略过空格)是数字的话,就在这个数字前面加个^。

用支持正则的脚本语言可以轻松办到,纯BAT实现起来很麻烦
QQ 33892006

TOP

正则表达式:
(=\s*)(\d+)
\1^\2
1

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

群里求来了判断,网上搜到替换,但是还是弄不出来,vbs确实玩不来。

TOP

回复 4# 窄口牛


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

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  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

评分人数

TOP

本帖最后由 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

评分人数

QQ 33892006

TOP

非常完美,谢谢

TOP

返回列表