windows脚本编程------WshNetwork对象

WSH对象模型入门

wsh全称Windows Script Host.它是一个环境,在这个环境中不同的脚本引挚可以执行不同语言骗写的脚本。WSH有两个引挚分别是为VBSCRIPT和JSCRIPT构建的;它也提供了对COM自动化对象的访问。执行脚本时可能指定使用脚本宿主wscript.exe或csript.exe.wscript会把脚本作为GUI环境的一部分启动,csript是在命令控制台下启动脚本。

它们的相关参数:

//E 为特殊文件类型设定默认脚本旨挚。

//Job:jobID 执行作业标识符标记的一部分代码。

//T:Seconds 为脚本执行设定一个超时

//nologo 不显示版本信息。

对像的激活与移除

在使作任何其它的COM对象前,首行要对它们进行激活。激活创建那个对象的引,并在脚本的持续期间把它存储在一个变量中,然后就可像使用对象本身一样使用这个变量。激活一个对象有两种方法:

使用Wscript的CreatObject方法:

Dim ObjExcel

Set ObjExcel = Wscript.CreatObject("Excel.Application")

使用VBScript的CreatOjbect函数:

Dim ObjExcel

Set ObjExcel = CreatObject("Excel.Application")

当不再需要一个对象时,应将它移除以便宜释放系统资源。如果进程与WSH执行程序进行在相同的进程空间,脚本结束时会自动发生。如果在进程外COM对象中工作象word.Application等就要先使用一种方法停止应用程序,然后把保持对象引用的变量设为Nothing:

Option Explicit

Dim ObjExcel

Set ObjExcel = CreateObject("Excel.Application")

'do whatever processing you need

ObjExcel.Quit

Set OjbExcel = Nothin

深入Windows脚本主机对象模形:

我们可以认为WScript对象是WSH对象模型的入口。模型中的一些对象分组到集合中,WScript对象可以访问的对象和集合包括如下:

>WshShell对象是通过CreateObject(Wscript.shell)函数或方法来激活,可用于环境变量、特殊文件夹、快捷方式和注册表以及启动外部程序。

一旦激活了WshShell对象它就能够用于创建附加的WSH对象和对象集合:

……WshEnvironment对象,通过WshShell.Environment属性激活,用于访问环变量。

……WshShortcut对象,通过WshShell.CreateShortcut()方法激活,用于访问文件和文件夹的快捷方式。

……WshUrShortcut对象,通过WshShell.CreateShortcut()方法激活,用于访问URL的快捷方式。

……WshSpecialFolders对象, 通过WshShell.SpecialFoldes属性激活,用于访问特殊文件夹:我的电脑、桌面、拨号网络……

>WshNetwork对是通过CreateObject(Wscript.WshNetwork)函数或方法来激活。可用于访问共享的网络打印机和文件夹。

一旦激活了WsheNetwork对象它就能够用于创建附加的WSH对象和对象集合:

……DriveMapping集合(WshCollection的实例)通过WshNetwork.EnumNetworkDrives()方法激活,用于访问当前驱动器映射。

……NetworkPrinters集合(WshCollection的实例)通过WshNetwork.EnumPrinterConnections()方法激活,用于访问当前打印机集合。

>WshArguments集合可以通过WScript.Arguments属性来访问,可用于访问一组脚本参数。这些参数是在使用wscript和cscript调用期间在命令行中输入的值:

cscript.exe Myscript.vbs One Two

One Two是两个参数,它们分别由Wscritp.Arguments(0)和Wscritp.Arguments(1)引用。参数能够使用不同组的值运行脚本,而不用对代码做任何修改在运行状态下不必与脚本交互。

FileSystemObject对象模型

本地文件系统从VBscrip特性库中取消,如果VBScript运行在WSHI提供的环境中,它就可以利用脚本运行时库的FileSystemObicet对象模型。我们要从创建对象的根模型开始:

Dim objFso

Set objFso = CreateObjcet("Scripting.FileSystemObject")

对象创建后就可以访问模FILESYSTEMOBJECT对象的其它部件:

……Drives(Drive对象集合);包括软盘、可移动硬盘和固定磁盘及网络映射。

……Folders(Folder对象集合);包括基于系统的文件夹,但不能支持特殊文件夹。

……Files(File对象集合)

……TextStream;提供处理文本文件的属性和方法。

使用FileSystemObject的方法属性,可以操作文件系统的每个部件。让我们来了解它更多的属性和方法:

……DriveExists FolderExists fileExists:允许校验每个文件系统部件是否存在。

……GetTempName:在你需要创建一个临时文件夹的情况下非常有用。

……GetDrive:返回一个驱动器对象。驱动器引用是可用时,就可以访问它的属性,如:AvailableSpace DriveLeeter DriveType FileSystem FreeSpace IsReady Path RootFolder SerialNumber ShareName TotalSize VolumeName

……GetFolder;返回一个文件夹对象可以访问的属性有:Attributes DateCreated DateLastAccessd DateLastModified Drive Files IsRootFolder Name ParentFolder Path ShortName ShorPath Size SubFolders Type 方法:copy Delete Move CreateTextFile

……GetFile;返回一个文件对象,当文件引用是可用时你可以访问的属性和方法有:Copy Delete Move OpenAsTextStream

TextStream对象是处理文本文件最快的方法,它可以通过如下方法创建:

……FileSystemObject的CreateTextFile方法

……FileSystemObject的OpenTextFile方法

……Folder对象的CreateTextFile方法

……File以的OpenAsStream方法

对象的属性和方法简化了文件内容的处理,可用的属性有:Column Line AtEndOfLine ArEndOFstream 可用的方法有:Close Read ReadAll ReadLine Skip SkipLine Write WriteLine WriteBlankLines

MapNetworkDrive方法:

将网络共享映射为本地资源

object.MapNetworkDrive strLocalName,strRemoteName,[struser],[strPassword]

方括号内为可选项,就不做解释;

object:WshNetwork对象

strLocalName:映射为本地资源的命名

strRemoteName:要映射的网位置名称

来看一个示例:

Set WshNetwork = Wscript.CreateObject("WScript.Network")      '激活wsh对象

WshNetwork.MapNetworkDrive "z:",\\share\d                     '将远程共享映射为本地z:

EnumNetworkDrives方法:

列出本地映射的网络资源,请看示例:

Set WshNetwork = CreateObject("WScript.Network")
Set emNt = WshNetwork.EnumNetworkDrives

For i = 0 to emNt.count - 1 Step 2
    WScript.Echo " Drive " & emNt.Item(i) & " = " & emNt.Item(i+1)
Next

RemoveNetworDrive方法:

移除映射的网络资源;

一个示例:

set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.RemoveNetworkDrive "z:"

AddWindowsPrinterConnection方法:

在windows中添加一个打印机的连接,

object.AddWindowsPrinterConnection"strPrinterPath"

object指的是WshNetwork对象;

strPrinterPath是指Printer路径

一个添加打印机连接的示例:

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection \\PrinterServer\Brother MFC-7420 USB Printer

SetDefaultPrinter方法:

打印机添加完后通常会设置一个为默认打印机,这就要用到serdefaultprinter方法:

WshNetwork.SetDefaultPrinter \\PrinterServer\Brother MFC-7420 USB Printer

EnumPrinterConnections方法:

Set WshNetwork = CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
WScript.Echo
For i = 0 to oPrinters.COunt - 1 Step 2
    WScript.Echo " Drive " & oPrinters.Item(1) & " = " & oPrinters.Item(i+1)
Next

RemovePrinterConnection方法:

移除不需要或多余的打印

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.RemovePrinterConnection \\PrinterServer\Brother MFC-7420 USB Printer

 

WshNetwork对象

提供对windows的网络的访问,自动化的完成网络驱动器、打印机的访问连接;

请看用vbs写的示例:

Set WshNetwork = CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Set oPrinters = WshNetwork.EnumPrinterConnections
WScript.Echo "Domain = " & WshNetwork.UserDomain
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
WScript.Echo "User Name = " & WshNetwork.UserName
WScript.Echo
WScript.Echo "Network drive mappings:"
For i = 0 to oDrives.Count - 1 Step 2
WScript.Echo "Drive " & oDrives.Item(i) & " = " & oDrives.Item(i+1)
Next
WScript.Echo
WScript.Echo "Network printer mappings:"
For i = 0 to oPrinters.Count - 1 Step 2
WScript.Echo "Port " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)
Next

 

转自:http://hi.baidu.com/hbp555/blog/item/e5fa8184050ce03267096e38.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值