VBS удалить printe - при ошибке возобновить следующее - PullRequest
0 голосов
/ 22 июля 2011

Когда я запускаю скрипт ниже, я получаю сообщение об ошибке, что первый принтер не существует.Это правда, первый принтер не подключен, поэтому вывод дает мне следующее: «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 Ответ

1 голос
/ 22 июля 2011

Это зависит от требований к качеству вашего скрипта.Если не имеет значения, будет ли он успешным или неудачным, поместите OERN в первую строку (и отвечайте стандартам сценаристов).

Компромисс / минимальное воздействие / питонное изменение вашего сценария:

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

Это ограничит раздел "Мне все равно" одной операцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...