标题: [问题求助] VBS怎样判断等号后面是数字就在数字前面加^(已解决) [打印本页]
作者: 窄口牛 时间: 2018-7-16 12:37 标题: VBS怎样判断等号后面是数字就在数字前面加^(已解决)
本帖最后由 窄口牛 于 2018-7-17 07:05 编辑
判断文本中所有的等号后面的第一个字符(略过空格)是数字的话,就在这个数字前面加个^。
作者: yhcfsr 时间: 2018-7-16 12:52
用支持正则的脚本语言可以轻松办到,纯BAT实现起来很麻烦
作者: codegay 时间: 2018-7-16 12:59
正则表达式:
(=\s*)(\d+)
\1^\2
作者: 窄口牛 时间: 2018-7-16 13:08
群里求来了判断,网上搜到替换,但是还是弄不出来,vbs确实玩不来。
作者: Batcher 时间: 2018-7-16 13:28
回复 4# 窄口牛
把你求到的代码更新到顶楼,我试试。
作者: 窄口牛 时间: 2018-7-16 13:38
- Set regex=New RegExp
-
- regex.Global=True
-
- regex.Pattern="\=\s*(\d)"
-
- For Each i In regex.Execute(text)
-
- wsh.echo i.Submatches(0)
-
- Next
复制代码
- s=Split(text,"=")
-
- For i=1 To UBound(s)
-
- If IsNumeric(Left(LTrim(s(i)),1))then
-
- wsh.echo Left(LTrim(s(i)),1)
- else wsh.echo "no"
- End If
-
- Next
复制代码
- set fso = createobject("scripting.filesystemobject")
- ' 读取文件
- set stream = fso.opentextfile("a.txt",1)
- content = stream.readall()
- call stream.close()
- ' 替换字符串
- content = replace(content,"=","=^")
- content = replace(content,"*","♀")
- ' 保存文件
- set stream = fso.opentextfile("a.txt",2)
- call stream.write(content)
- call stream.close()
复制代码
作者: yhcfsr 时间: 2018-7-16 22:49
本帖最后由 yhcfsr 于 2018-7-16 22:51 编辑
BAT放在源目录下执行.记得备份源文件.- @set @n=0/*&echo off
- dir /a-d/s/b *.txt|cscript -nologo -e:jscript "%~f0"
- pause&exit /b */
-
- var fso=new ActiveXObject('scripting.FileSystemObject');
- while(!WSH.StdIn.AtEndOfStream){
- var file=WSH.StdIn.ReadLine();
- var fo=fso.OpenTextFile(file,1);
- content=fo.ReadAll();
- content=content.replace(/(=\s*)(\d+)/g,'$1^$2');
- fo.close();
- fo=fso.OpenTextFile(file,2);
- fo.Write(content);
- fo.close();
- }
复制代码
作者: 窄口牛 时间: 2018-7-17 07:06
非常完美,谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |