有41人阅读过
使用bat打印喷墨打印机喷嘴测试文件
发布于2025/04/02 更新于2025/04/02
[ 教程仅保证更新时有效,请自行测试。]
发布于2025/04/02 更新于2025/04/02
[ 教程仅保证更新时有效,请自行测试。]
[ 教程仅保证更新时有效,请自行测试。]
此脚本配合测试文件,可一键发送打印任务到局域网内所有 爱普生和佳能的喷墨打印机,测试喷嘴有没有堵
压缩包内含两个文件:
解压后,直接双击PrinterCheck.bat即可。
*可以自己替换打印测试文件nozzle_check.pdf
可在系统任务计划程序中添加定时执行:
在系统中搜task
打开后,根据指引 创建基本计划任务:
脚本内容如下:
@echo off :: ============================================== :: 多打印机静默测试打印脚本 :: 功能: :: 1. 自动检测所有打印机并静默发送测试页 :: 2. 不弹出打印对话框,直接后台执行 :: 3. 生成详细日志(包括成功/失败状态) :: ============================================== title 多打印机静默测试工具 setlocal enabledelayedexpansion :: 1. 设置日志文件路径 set "LOG_FILE=%~dp0PrinterTest_Log_%date:~0,4%%date:~5,2%%date:~8,2%.txt" echo [%date% %time%] 脚本启动 > "%LOG_FILE%" :: 2. 待打印文件路径(支持TXT/PDF) set "TEST_FILE=%~dp0nozzle_check.pdf" if not exist "%TEST_FILE%" ( echo [错误] 测试文件不存在: %TEST_FILE% >> "%LOG_FILE%" echo 请确保 nozzle_check.pdf 位于脚本目录下! pause exit /b 1 ) :: 3. 获取所有打印机列表 echo 正在检测打印机... >> "%LOG_FILE%" set "PRINTER_COUNT=0" set "EPSON_L_COUNT=0" set "HP_OFFICEJET_COUNT=0" :: 4. 使用 WMIC 查询打印机列表 for /f "tokens=2 delims==" %%P in ( 'wmic printer get name /value ^| find "Name="' ) do ( set "printer_name=%%P" set "printer_name=!printer_name:~0,-1!" :: 统计总数 set /a "PRINTER_COUNT+=1" :: 检测 Epson L 系列 echo !printer_name! | findstr /i /c:"EPSON L" >nul if !errorlevel! equ 0 ( set /a "EPSON_L_COUNT+=1" call :silent_print "!printer_name!" "Epson_L" ) :: 检测 HP OfficeJet 系列 echo !printer_name! | findstr /i /c:"HP OfficeJet" >nul if !errorlevel! equ 0 ( set /a "HP_OFFICEJET_COUNT+=1" call :silent_print "!printer_name!" "HP_OfficeJet" ) ) :: 5. 打印汇总报告 echo. >> "%LOG_FILE%" echo ======= 打印任务汇总 ======= >> "%LOG_FILE%" echo 检测到打印机总数: %PRINTER_COUNT% >> "%LOG_FILE%" echo Epson L系列打印机: %EPSON_L_COUNT% >> "%LOG_FILE%" echo HP OfficeJet系列打印机: %HP_OFFICEJET_COUNT% >> "%LOG_FILE%" echo 详细日志见: %LOG_FILE% :: 6. 结束 echo 所有任务已完成!按任意键查看日志... pause start notepad "%LOG_FILE%" exit /b :: ========== 子函数:静默打印任务 ========== :silent_print set "printer=%~1" set "printer_type=%~2" echo. >> "%LOG_FILE%" echo [%date% %time%] 正在静默打印到: %printer% (%printer_type%) >> "%LOG_FILE%" :: 方法1:使用 PowerShell + RawFileCopy (适用于 PDF/TXT) powershell -command "$file='%TEST_FILE%'; $printer='%printer%'; (New-Object -ComObject WScript.Network).SetDefaultPrinter($printer); $pdf=New-Object -ComObject Shell.Application; $pdf.Namespace(0).ParseName($file).InvokeVerb('Print')" 2>nul echo [成功] 测试页已发送到 %printer% >> "%LOG_FILE%" echo [提示] 如 %printer% 未打印,请检查打印机状态,是否缺墨,缺纸? >> "%LOG_FILE%" exit /b
文章对你有帮助吗?
- 一般[0]
- 很赞[0]
- 没用[0]
- 垃圾[0]
- 无语[0]