'-----------------------------------
Class clsGetProfile
Private rootDoc
Public Sub setProfile(strFileName)
Set data_xml = CreateObject("Microsoft.XMLDOM")
data_xml.async = False
data_xml.load(strFileName)
Set rootDoc = data_xml.documentElement
Dim objDict
Set objDict = WSH.CreateObject("Scripting.Dictionary")
'objDict.Add "aaa","hehe"
'WSH.Echo(objDict.Item("aaa"))
Set VarsNode=rootDoc.selectSingleNode("var")
Set VarNodes=VarsNode.childNodes
s=VarNodes.length
'---start set vars
for i = 0 to s-1
Set VarNode= VarNodes(i)
key = VarNode.getAttribute("name")
value= VarNode.Text

Dim keys,items
keys=objDict.Keys
items=objDict.Items

for j=0 to objDict.Count-1
value=Replace(value,"${"&keys(j)&"}",items(j))
next

objDict.Add key,value

'resetStr=Replace("x${qqq}nnn","${"&key&"}",value)

next
'--- end set vars
'msgbox objDict.item("target")

'filePath=objDict.item("configFile")
'fileText=Replace(fileText,"${HYBRIS_LOG_DIR}","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
'msgbox "==="&fileText
'saveText "d:/AAAAS.txt",fileText

filePath=objDict.item("source")
filePath=Trim(filePath)
filePathTarget=objDict.item("target")
filePathTarget=Trim(filePathTarget)
textContent=getText(filePath)

Set messageNode=rootDoc.selectSingleNode("message") ' //getElementsByTagname("key")
Set KeyNodes=messageNode.childNodes
s=KeyNodes.length

keys=objDict.Keys
items=objDict.Items

for i = 0 to s-1
Set KeyNode= KeyNodes(i)
key = KeyNode.getAttribute("name")
value= KeyNode.Text
for j=0 to objDict.Count-1
value=Replace(value,"${"&keys(j)&"}",items(j))
next

textContent=Replace(textContent,"${"&key&"}",value)
'msgbox value
'replace=bbb
'resetStr=Replace("x${xxxx}nnn","${"&key&"}",value)

next

saveText filePathTarget,textContent

If data_xml.parseError.errorCode <> 0 Then
MsgBox "XML文件格式不对,原因是:" & Chr(13) & data_xml.parseError.reason
End If

End Sub
' 读取文件
public Function getText(filePath)
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile(filePath)
strCopy = file.readall
file.close
getText=strCopy
End Function
public Function SaveText(filePath,content)
set fso=createobject("scripting.filesystemobject")
Set f = fso.CreateTextFile(filePath,True)
f.write(content)
f.close
End Function
Public Function getItem(massage, itemName)
Set xxx=rootDoc.selectSingleNode(strSectionName)
MsgBox itemName
getItem=xxx.selectSingleNode("Info.001").getAttribute("value")

End Function
End Class
Dim config : Set config = New clsGetProfile
Call config.setProfile("Config.xml")
'WScript.Echo config.getItem("message", "INFO.001")
'WScript.Echo config.getItem("MessageDefine", "INFO.003")
'WScript.Echo config.getItem("MessageDefine", "ERROR.009")
'WScript.Echo config.getItem("MessageDefine", "ERROR.012")

vbs test的更多相关文章

  1. C#调用vbs脚本实现Windows版Siri

    最近新加入,把自己一些有意思的小东西分享给大家,我是一个学生,代码写得少,哪里不规范,希望大家见谅. 这事我封装好的一个类,可以直接实例化对象之后,调用"对象.Talk()"方法, ...

  2. 在WinCC中通过VBS操作SQL Server2005

    在项目中需要在一定条件满足时,保存一些数据到数据库中,并可根据条件查询.考虑到WinCC6.2以后采用的就是SQL Server2005数据库,所以直接利用该数据库即可,通过SQL Server Ma ...

  3. 使用vbs脚本进行批量编码转换

    使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看分析在Linux系统下开发的项目代码,我们知道Linux系统中文本文件默认编码格式是UTF-8,而Windows中文系统中的默 ...

  4. vbs让电脑发音说话

    Dim vbs1 'set vbs1 = WScript.CreateObject("WScript.Shell") set vbs1 = WScript.CreateObject ...

  5. WSF脚本详解:组合JS和VBS代码

    1.概述 Windows Script Host除了提供一个对象模型之外,还提供了一种脚本框架,这就是WSF脚本.通过WSF约定的标记元素,可以将多种脚本语言写的代码块组合起来,完成任务.除此之外,还 ...

  6. HTA全解析:给VBS和JS一个强大的交互界面

    1.概述 HTA全称Html Application,在Windows中由mshta.exe加载执行,是一种本地程序.可使用html元素来构建界面,用JS或VBS来构建执行逻辑,从而强化Windows ...

  7. vbs 中文字符串

    vbs 字符串包含中文字符,文件以UTF-8无BOM格式保存,就会出现“编译器错误: 未结束的字符串常量”错误,改以ANSI保存就没有这个问题

  8. 使用bat/vbs/ahk对Windows下进行自动化操作

    回想90年代,我们在DOS下使用各种命令链对操作进行简化和自动化,如DOS 5.0添加的DosKey,利用管道和重定向对多组命令进行链式操作.后来使用了Ubuntu和其它Linux发型版后,bash下 ...

  9. vbs 的二个解释程序区别与切换及与BAT互调用。

    WScript.exe : 窗口中运行CScript.exe :命令行中运行 用法:<CScript|WScript> scriptname.extension [option...] [ ...

  10. 用VBS实现公司自动打卡

    公司每天要求早晚打卡,方式是登录某一个页面,然后点击上面的圈圈,如下图: 每天都要打开书签,登录这个页面,然后打卡...这么重复性的工作,怎么能是程序员天天干的事情呢(其实是我太懒了),那么就尝试让程 ...

随机推荐

  1. Java 读取指定目录下的文件名和目录名

    需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...

  2. Buffer篇

    // var buf1 = new Buffer(26);/*返回一个新的buffer对象,这个新buffer和老buffer公用一个内存.但是被start和end索引偏移缩减了.(比如,一个buff ...

  3. GDI学习之俄罗斯方块续

    当前方块对象 #region 定义砖块int[i,j,y,x] Tricks:i为那块砖,j为状态,y为列,x为行 private int[, , ,] Tricks = {{ { {,,,}, {, ...

  4. PL/SQL之--存储过程

    一.存储过程 存储过程是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.oracle可以把PL/SQL程序储存在数 ...

  5. windows下 MySQL数据库双向同步 配置步骤

          最近在项目中遇到了要实现服务器上MySql数据双向同步,在网上找了很多资料,但是大部分都是在liux系统下配置的, 而且都是互相转载,没有一个详细的步骤,于是决定写一个windows系统下 ...

  6. uva 10129 play on words——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABNUAAANeCAYAAAA1BjiHAAAgAElEQVR4nOydabWsuhaFywIasIAHJK

  7. 【读书笔记《Android游戏编程之从零开始》】18.游戏开发基础(碰撞检测)

    1.矩形碰撞 所谓矩形碰撞,就是利用两个矩形之间的位置关系来进行判断,如果矩形的像素在另外一个矩形之中,或者之上都可以认为这两个矩形发生了碰撞. 如果单纯的去考虑哪些情况会判定两个矩形发生碰撞,倒不如 ...

  8. [树莓派]安装node环境

    本文并非node的编译安装,据说这要花很长时间,所以一开始我就是拒绝的.本文展示的是如何部署ndoe的编译好的执行文件. node的官网上下载目录里本身就有针对arm的编译好的执行文件.地址在这里:h ...

  9. java解惑 读书笔记

    表达式之谜 >奇数性 当取余操作返回一个非0的结果.他与左操作数具有相同的正负符号. >找零谜题 在需要精确答案的地方,要避免使用float和double.对于货币运算.要使用int,lo ...

  10. Redis安全访问

    限制IP(只能一个) # If you want you can bind a single interface, if the bind option is not # specified all ...