VBS删除打印机 - 接下来错误恢复

时间:2011-07-22 17:23:13

标签: vbscript

当我运行下面的脚本时,我收到第一台打印机不存在的错误。这是真的,第一台打印机没有连接,所以输出给了我这个: “c:\ temp \ rmprintlong.vbs(4,1)WSHNetwork.RemoveNetworkDrive:此网络连接不存在。”然后脚本死了......这就是问题:脚本死了!!! 我仍然需要它来删除此脚本中的第二台打印机!如果它在脚本中找不到其中一台打印机,我仍然需要使用下一步删除打印机命令来恢复它! 这是我正在使用的代码:

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

PrinterPath = "\\p1\(SW)_HP_LaserJet_8150_Series_PCL"
WshNetwork.RemovePrinterConnection PrinterPath, true, true

PrinterPath = "\\p1\(NE)_HP_LaserJet_5M"
WshNetwork.RemovePrinterConnection PrinterPath, true, true

Wscript.Quit(1)

我是否只需在代码的第一行添加“On Error Resume Next”..?

1 个答案:

答案 0 :(得分:1)

这取决于脚本的质量要求。如果成功或失败无关紧要,请将OERN放在第一行(并符合脚本专家的标准)。

脚本的妥协/最小影响/ pythonic变体:

Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = "\\p1\(SW)_HP_LaserJet_8150_Series_PCL"
On Error Resume Next ' don't care if this fails
WshNetwork.RemovePrinterConnection PrinterPath, true, true
On Error GoTo 0 ' open eyes again
PrinterPath = "\\p1\(NE)_HP_LaserJet_5M"
WshNetwork.RemovePrinterConnection PrinterPath, true, true
Wscript.Quit 1  ' no parameter list () when calling a sub

这会将“我不关心”部分限制为单一操作。