0
我試圖從用戶的打印機和設備中刪除打印機。爲了確保我刪除打印機,我有一系列if
語句來刪除網絡上或本地的打印機,並通過名稱或通過名稱和服務器連接刪除打印機。Windows批處理:使用rundll32處理錯誤
我的問題是,當我測試打印機被刪除成功時,errorlevel
始終報告爲0
,無論打印機是否未成功刪除。
有沒有人知道一種方法來處理與rundll32 printui.dll,PrintUIEntry
錯誤?
rundll32 printui.dll,PrintUIEntry /dn /n "%printerName%"
if %ERRORLEVEL% NEQ 0 goto first else (goto after)
:first
rundll32 printui.dll,PrintUIEntry /dl /n "%printerName%"
if %ERRORLEVEL% NEQ 0 goto second else (goto after)
:second
rundll32 printui.dll PrintUIEntry /dl /n \\DC1\%printerName%
if %ERRORLEVEL% NEQ 0 goto third else (goto after)
:third
rundll32 printui.dll PrintUIEntry /dn /n \\DC1\%printerName%
goto after
:after
ECHO If printer was not deleted, click on the 'start' menu button, go to 'Devices and Printers', right click on the printer you want to remove, and select 'Remove Device'
rundll32沒有設置ERRORLEVEL,因爲它不知道它運行的進程的結果。它只是運行這個過程。有關rundll32,請參閱[documentation](http://technet.microsoft.com/zh-cn/library/ee649171.aspx)。它運行的過程將不得不返回一個ERRORLEVEL,並且我沒有看到任何說PrintUI.DLL的PrintUIEntry這樣做的事情。 –
是否有任何理由不使用'c:\ windows \ system32 \ prn * .vbs'文件進行打印機管理? –
@MCND除了我的知識缺乏之外,沒有。可以使用這些文件中的一個刪除打印機,並且可以指示我使用這些文件的某些文檔嗎? – pbars23