WSH – Windows Script Host (Windows脚本宿主) 是一个基于COM的脚本宿,它可以在Windows中执行脚本。它同时支持Jscript和VBScript.
.WSC - windows 脚本组件。例如VBS本身没有提供访问文件系统的方法,但是可以使用Scripting.FileSystemObject COM组件来打开文件。 WSC文件是一个XML格式的文本文件,它提供一系列的元素的属性来定义一个对象的接口(例如用于脚本调用的属性和方法),同时它本身也是用脚本语言实现。WSC文件有自己的XML元素列表:
<component>元素封装一个脚本组件的整个定义。其他属性如:description =”description”, progid=”progid”, classid=”GUID”, version=”vesrion”
.WSF – Windows脚本文件采用XML文件。他能包含独立代码,不像独立脚本,wsf脚本可以包含其他文件的VBS或JS代码。
Sample:读取一个文件,替换里边的内容然后在写回去
<job id="main">
<scriptlanguage="VBScript"
SetFSO=CreateObject("scripting.filesystemobject")
Set objFile=FSO.OpenTextFile("D:\package\Builds\ePrint\Win32\Release\hpbje1101.inf",1,false)
objContents = objFile.ReadAll
BeginStr =InStr(1,objContents,"DriverVer = ")
EndStr =InStr(BeginStr,objContents,"CatalogFile")
DriverRevision =Mid(objContents,BeginStr+30,EndStr-BeginStr-32)
objFile.Close
SetobjFile=FSO.OpenTextFile("D:\automation\ComponentTests\PrintDriver\ePrint\1.0\config\FileVersionsConfigePrint.tcc",1,false,-1)
objContentsConfigTCC =Replace(objFile.ReadAll,"DriverRevisonFromVBs",DriverRevision)
objFile.Close
SetobjFile=FSO.OpenTextFile("D:\automation\ComponentTests\PrintDriver\ePrint\1.0\config\FileVersionsConfigePrint.tcc",2,false,-1)
objFile.Write objContentsConfigTCC1
objFile.Close
</script>
</job>
.VBS 普通的VBS脚本
Sameple1:读取一个文件里面的内容,让后返回给cmd脚本
.vbs 文件中的内容
dim return
SetFSO=CreateObject("scripting.filesystemobject")
SetobjFile=FSO.OpenTextFile("D:\package\spo\UPD\pcl6\win_xp_vista\hpcu118c.inf",1,false)
objContents = objFile.ReadAll
BeginStr =InStr(1,objContents,"DriverVer=")
EndStr =InStr(BeginStr,objContents,"DriverIsolation")
DriverRevision =Mid(objContents,BeginStr+31,EndStr-BeginStr-33)
objFile.Close
return = DriverRevision
wscript.echo return
.cmd 文件中的内容
for /f "tokens=*" %%iin ('cscript /nologo"D:\automation\ComponentTests\PrintDriver\Evo\config\GetEvoDriverRevision.vbs"')do (
Set Revision=%%i)
Sample2:获取一个路径下的所有文件列表
Set fso =CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("c:/")
Set fs = f.Files
i = 0
For Each f1 in fs
fn = f1.name
i=i+1
msgbox fn
Next