You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下用PowerShell打印外部HP打印机PDF文件的问题

Windows 11下PowerShell批量打印PDF到HP打印机的解决方案

问题根源

你遇到的报错是因为系统未正确关联PDF文件的默认打印处理应用,Start-Process的print动词找不到对应的程序执行打印操作。

无第三方软件解决方案

利用Windows 11自带的Microsoft Edge浏览器处理PDF打印,直接指定Edge路径避免文件关联依赖,同时精准指定目标HP打印机:

步骤1:获取HP打印机准确名称

先运行以下命令,复制输出的HP打印机名称:

Get-Printer | Where-Object Name -like "*HP*" | Select-Object Name

步骤2:批量打印脚本

将脚本中的"你的HP打印机名称"替换为上一步获取的名称,在PDF文件所在目录执行:

# 获取Microsoft Edge安装路径
$edgePath = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe")."(Default)"

# 按修改时间排序并批量打印PDF
Get-ChildItem -Filter "*.pdf" | Sort-Object LastWriteTime | ForEach-Object {
    # 等待打印队列清空
    while (@(Get-PrintJob -PrinterName "你的HP打印机名称").Count -gt 0) {
        Start-Sleep -Seconds 3
        Write-Host "." -NoNewline
    }
    Write-Host ""
    Write-Host "正在打印:$($_.Name)"
    
    # 调用Edge后台打印到指定HP打印机
    Start-Process -FilePath $edgePath -ArgumentList "--headless", "--disable-gpu", "--print-to-printer=`"你的HP打印机名称`"", "`"$($_.FullName)`"" -Wait
}

脚本说明

  • --headless:Edge后台运行,不弹出窗口
  • --disable-gpu:规避GPU相关打印异常
  • --print-to-printer:指定目标HP打印机
  • -Wait:等待当前文件打印完成后再处理下一个,防止队列拥堵

原方案问题修正

  • 方案一存在语法错误:$._Name应为$_.Name,且依赖PDF文件关联,依然会触发报错
  • 方案二未指定目标打印机,易误打印到虚拟PDF打印机,同样依赖文件关联机制

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:09:57