Ever tried cancelling a print job in Windows but feel like it takes ages before anything actually happens? It's a common annoyance, and one that helpful Reddit user Shikyo explains and remedies.
Photo by The Oatmeal.
In a nutshell, Shikyo explains that Windows is unable to cancel print jobs while the temporary file created for the print job is still being used by Windows. The solution: You've got to stop the spoolsv.exe service in the Windows Task Manager, delete any outstanding print jobs in the C:Windowssystem32spoolprinters directory, restart the spoolsv.exe service, and then start printing again. That's a lot of work to do manually, particularly if this is a problem you run into regularly, but luckily the generous Reddit user has also detailed a batch file that'll do the heavy lifting for you:
Here is the script for a batch file; just copy this to a new text document and save as "clearprintspool.bat"
@echo off echo Stopping print spooler. echo. net stop spooler echo deleting stuff... where? I'm not sure. Just deleting stuff. echo. FOR %%A IN (%systemroot% system32 spool printers *.*) DO DEL %%A echo Starting print spooler. echo. net start spooler
To save you the trouble of making the batch file yourself, you can also just download it here. Whenever you want to run through the process, just double-click the file and it'll kill the process, delete the temp files, and restart the print spooler for you.
As several users on Reddit point out, this isn't something you'll want to do on a print server — at work, for example — because it'll cancel everyone's print jobs and not just your own. But if you commonly face this annoyance on your personal printer, the batch file or method described above looks like a nice enough workaround.