ユニバーサル ドライバーを使用してプリンターを自動的にインストールするスクリプトを作成しようとしています。判断できないのは、どちらのユニバーサル ドライバーを使用するか (PS または PCL) です。したがって、バッチ スクリプトでこれを処理しようとします。最初にPCL ドライバーをインストールし、失敗した場合は PS ドライバーをインストールしますが、PrintUI.dll から例外をキャッチしようとすると、問題が発生します。
@rundll32 printui.dll,PrintUIEntry /if /b "1.2.3.4 - HP Color LaserJet CP5225n" /f "C:\Windows\System32\DriverStore\FileRepository\hpcu130u.inf_amd64_neutral_33833446aad0d0f1\hpcu130.inf" /r "IP_1.2.3.4" /m "HP Universal Printing PCL 6"
PS ドライバーが必要なため、特定のプリンターでは失敗します。しかし、チェックする%ERRORLEVEL%
と常に0です。次のエラー処理を試みた場合、結果はコマンドの成功ですが、エラーがスローされ、プリンターがインストールされていないため、成功しません。
@rundll32 printui.dll,PrintUIEntry /if /b "1.2.3.4 - HP Color LaserJet CP5225n" /f "C:\Windows\System32\DriverStore\FileRepository\hpcu130u.inf_amd64_neutral_33833446aad0d0f1\hpcu130.inf" /r "IP_1.2.3.4" /m "HP Universal Printing PCL 6"
&& (echo Command Successful) || (echo Command Failed)
このテストは、明らかにそうではありませんが、常に「コマンドの成功」を返します。エラーを処理するまともな方法を持っている人はいますか?私はこれらを機能させることができないようです。
注: 組織の実行ポリシーに従って、Powershell を使用できません。
更新: これは私が受け取るエラーです。