'-----------------------------------
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. 多线程基础(七)GCD线程组+栅栏函数

      1.GCD队列组     拦截通知和等待所有任务全部结束在继续往下执行|阻塞   需求:下载两张图片,等两张图片都下载完毕之后,合成图片(这个实例,复习的时候一定要凭空敲出代码练习,好记性不如烂键 ...

  2. Android 之 2048 的游戏逻辑分析

    继续学习了极客学院的实战路径课程,讲到了2048游戏的编写过程,我在这里作个总结分享给大家(结果会附源代码和我改写后的代码): 这里主要包括两个方面:1.2048界面的绘制   2.2048算法逻辑的 ...

  3. linux ssh更换默认的22端口

    1.修改配置文件:/etc/ssh/sshd_config 2.先将Port 22 前面的 # 号去掉,并另起一行.如定义SSH端口号为26611 ,则输入 3.修改完毕后,重启SSH服务,并退出当前 ...

  4. C# PDF打印

    C#中使用iTextSharp生成并下载PDF很方便. 首先要将iTextSharp的dll下载并引入项目 主要分成两部分,一部分是PDF的Document生成,另一部分就是将Document输出到页 ...

  5. 基于WF4.0的公文管理系统

    系统功能说明 公文管理 通过定义公文的基本信息,并将它按照工作流的定义流转实现公文的管理.包含以下功能: )公文创建:用户能够将格式化文本作为公文上传到系统中,并选择工作流启动流程. )公文审批:具有 ...

  6. cocos2d-x之初试内存管理机制

    bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...

  7. ASP.NET5 MVC6入门教学之一(自己动手)

    等待微软开源大动作已经好几年了,终于ASP.NET 5发布了.今天给新手们写一个简单地教程,教你认识一下ASP.NET5 MVC6 1.安装kvm 首先,你需要以管理员权限打开cmd,执行如下的脚本: ...

  8. iOS -数据库网络之xml解析

    XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax)   1.IOS中XML文件获取   首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: ...

  9. Add Binary

    Add Binary https://leetcode.com/problems/add-binary/ Given two binary strings, return their sum (als ...

  10. FZU 1608 Huge Mission(线段树)

    Problem 1608 Huge Mission Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description Oaiei ...