您好,HK。 尽管脚本专家享有足智多谋的智者这样的声望 – 真是这样吗? 我们未享有足智多谋的智者这样的声望? 真是这样吗? 这很令人苦恼。
不管怎样,我们要说的是,尽管我们好像没有那样的声望,不过我们确实看过不少电视节目。 因为我们可以看到大量在广告中反映真相的药品广告片,药品公司极力吹捧他们新的神奇治疗方法的奇妙之处,之后用小声的旁白提醒大家,“副作用可能包括眩晕、恶心、困倦、头痛;还可能使您变成蝾螈。 怀孕的女士、可能怀孕的女士、认识知道某人怀孕的人的女士或母亲曾怀过孕的女士切勿服用。 男士切勿服用,除非他们想怀孕。”
之所以让我们回想一下这些药品公司的标准免责声明,是因为我们需要以我们自己的标准免责声明来开始今天的专栏: “可使用以下脚本为打印机更改打印机端口,前提是该脚本运行于 Windows XP 或 Windows Server 2003 计算机上。 此脚本不适用于 Windows 2000、Windows NT 4.0、Windows 98、Windows 95、Windows 3.1 或 Windows 3.0 计算机。”
Windows Me 呢? 如果发现有人实际上使用的是 Windows Me,那么他们也不走运。 很抱歉。
换句话说,您可以为打印机更改打印机端口,但只能在运行 Windows XP 和 Windows Server 2003 的计算机上执行此操作。 下面这个示例脚本可实现此操作:
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colPrinters = objWMIService.ExecQuery _
("Select * From Win32_Printer Where DeviceID='Art Department Printer'")
For Each objPrinter in colPrinters
objPrinter.PortName = "LPT1:"
objPrinter.Put_
Next
正如您所看到的,我们连接至 WMI 服务,然后使用 ExecQuery 方法来检索 DeviceID 等于 Art Department Printer 的所有打印机的集合。 如果您要在您自己计算机上尝试此脚本,请确保您使用了 Where 子句,该子句将返回的集合限定为单台打印机;否则您将具有为您计算机上的所有打印机更改打印机端口的风险。 (是的,DeviceID 是一种很好的方式,因为 DeviceID 在计算机上肯定是唯一的。)
返回集合后,我们构建一个 For Each 循环以遍历该集合内的所有打印机。 (如果我们的查询构造正确的话,集合中将只有一项。) 在 For Each 循环内,我们更改 PortName 属性的值,然后调用 Put_ 方法将所做更改写入打印机对象。 这就是该脚本所执行的所有操作。
当您下次 - 等一下: 刚才是谁说本专栏可能导致眩晕、恶心、困倦和头痛来着?您好,我们希望这里将成为有趣的地 方。
我们确实说过应成为…。