OR.global=True ‘
搜索应用于整个字符串
regOR.pattern="^([0-9]{1})$" ‘ 建立搜索模式为单数字表达式
dim mytime
mytime=date ‘ 用 date 函数达到系统日期,并赋值给 mydate
yy=year(mytime) ‘ 提取系统日期中的年份
mm=month(mytime) ‘ 提取系统日期中的月份
dd=day(mytime) ‘ 提取系统日期中的日期
if regOR.test(mm) then ‘ 检测月份是否为单数字(一月到九月)
mm=regOR.replace(mm,"0$1") ‘ 如果是,则在月份前添加 0 使其成为两个数字
end if
if regOR.test(dd) then ‘ 检测日期是否为单数字(一日到九日)
dd=regOR.replace(dd,"0$1") ‘ 如果是,则在日期前添加 0 使其成为两个数字
end if
mytime=yy & "-" & mm & "-" & dd ‘ 合并年月日为 ”yy-mm-dd” 形式
dest=yy & mm & dd ‘ 合并年月日为 ”yymmdd” 形式
pattern1="(.*[^0-9])([0-9]{4}\-[0-9]{2}\-[0-9]{2})([^0-9].*)"
‘ 设定模式变量 pattern1 为 ”%d%d%d %d- %d %d -%d %d”
pattern2="(.*[^0-9])([0-9]{8})([^0-9].*)" ‘ 设定模式变量 pattern2 为 8 个连续数字
regOR.pattern=pattern1 ‘ 建立搜索模式为 pattern1
dim tempstring
Set fso = CreateObject("Scripting.FileSystemObject") ‘ 建立系统文件对象
Set f = fso.CreateTextFile("d:\shixian\temp.txt", True) ‘ 新建名为 temp 的文本文件
Set fr = fso.GetFile("d:\shixian\shixian.rpjf") ‘ 得到编码参数文件 shixian.rpjf
Set ts = fr.OpenAsTextStream(1,-2) ‘ 将参数文件以只读文本形式打开
do until ts.AtEndOfStream ‘ 建立循环,直到参数文件读取完毕
tempstring=ts.readline ‘ 以行为单位读取参数文件
if regOR.test(tempstring) then ‘ 搜索改行参数是否存在日期字段
tempstring=regOR.replace(tempstring,"$1" & mytime & "$3") ‘ 如存在,则更新
end if
regOR.pattern=pattern2 ‘ 建立搜索模式为 pattern2
if regOR.test(tempstring) then ‘ 搜索改行参数是否存在日期字段
tempstring=regOR.replace(tempstring,"$1" & dest & "$3") ‘ 如存在,则更新
end if
regOR.pattern=pattern1 ‘ 重新建立搜索模式为 pattern1
f.writeline(tempstring) ‘ 将更新后的数据写入 temp.txt 文件
loop
ts.close ‘以下是关闭和注销各个对象
f.close
set regOR=nothing
set ts=nothing
set fr=nothing
set f=nothing
set fso=nothing
要说明的是为什么要在单数字的月份和日期前加 0 。打个比方比较容易说明:如果不加 0 ,那么对于一个名为 2006111.rm 的文件,它究竟是指 2006 年 1 月 11 日还是 2006 年 11 月 1 日呢?加 0 后变成 20060111.rm 就一目了然了,是前者。
以上这段脚本代码的具体功能是将参数文件中的数据以行为单位导入到一个临时的文本文件中,实时监视与时间相关的 xml 字段并加以更新,最后在生成一个 temp.txt 的文件。之后我们要做的无非就是用一个批处理文件调用脚本,再删除旧的参数文件,最后将 temp.txt 重命名为参数文件。
这就是 update.bat 批处理文件中的代码:
@echo off
d:\shixian\update.vbs
if exist "d:\shixian\shixian.rpjf" del "d:\shixian\shixian.rpjf"
if exist "d:\shixian\temp.txt" rename d:\shixian\temp.txt shixian.rpjf
和第一节中