印刷ジョブがキャンセルできなくなった時にジョブを空にする

PC上で印刷実行したのに何時までもプリンターでの印刷が始まらず、印刷ジョブをキャンセルしてもキャンセルされないまま止まった状態が続く事がある。
プリンターの調子が悪いのかと思い、プリンターを再起動してみるも変わらず、USBやLAN等の接続に問題があると思い、接続し直す等の処理をしても結果は変わらず、PCを再起動してようやく治る事が多い。
しかし、多くのウインドウやアプリを開いたままの作業中に、一旦作業を中断して再起動を行うのは時間と手間が掛かるので、なるべく再起動をせずに不具合を治したい。
そんな時、以下の方法で治す事ができる。

dynabook.com | サポート情報 | 印刷ジョブを削除しても、ジョブが消えない<Windows(R)7>
http://www.dynabook.com/assistpc/faq/pcdata/010958.htm

作業内容を要約すると以下の手順となる。

  1. サービス"Print Spooler"を停止
  2. Print Spoolerのキャッシュフォルダ("C:\Windows\System32\spool\PRINTERS")内のファイルを全て削除
  3. サービス"Print Spooler"を再起動

しかし、この手順を印刷ジョブが消えなくなる度に行うのは色々と面倒なので、バッチ処理でできないか考える。
サービスの起動・終了をバッチ処理で行うには、以下の方法を使う。

バッチ で Windowsサービス を 起動、終了 する 方法 - galife
https://garafu.blogspot.com/2014/05/windows.html

これらを参考に、印刷ジョブを消すバッチ処理を書いてみる。
※注意:コマンドプロンプトからのファイル削除(復元不可)を行うため、自己責任で実行してください。

echo off

rem サービス名を設定
set SERVICENAME=Print Spooler

rem 空にするフォルダパスを設定
set FOLDERPATH=C:\Windows\System32\spool\PRINTERS

rem サービス中断
echo stopping %SERVICENAME%
net stop "%SERVICENAME%"

rem フォルダを空にする
echo emptying %FOLDERPATH%\*.*
del "%FOLDERPATH%\*.*"

rem サービス起動
echo starting %SERVICENAME%
net start "%SERVICENAME%"

pause

echo on

作業結果は以下の通り。(管理者として実行)