老板突然要打印几十份合同 批处理命令教你一键批量打印 省去逐个打开的麻烦
那天下午五点,老板突然冲进办公室,语气急得像着了火:”明天上午就要用,赶紧把合同部准备的20多份合同全打印出来,装订好!”
你看着电脑屏幕上那堆PDF和Word文档,心里一阵哀嚎。一个个打开、点击打印,估计得弄到半夜。别慌,今天教你一招,让电脑自己帮你干完这活儿。
为啥要搞批量打印?
先说个场景,你可能遇到过:
- 客户说要合同,你手上有几十份不同客户的文档
- 年底整理材料,一堆文件要打印存档
- 面试当天要给每个候选人准备材料
这时候如果还挨个打开文件打印,简直是浪费生命。咱们用批处理命令,点一下,全搞定。
准备工作:先理清楚再说
在动手之前,咱们先要把事情捋明白:
1. 文档都放哪?
先把所有要打印的合同文件放在同一个文件夹里。比如你在D盘建个文件夹,叫合同打印,把文件都丢进去:
D:\合同打印\
├── 张三_劳动合同.pdf
├── 李四_劳动合同.pdf
├── 王五_劳动合同.pdf
└── ...(二十几个文件)
文件名称不用太整齐,但放一个文件夹里是关键,这样咱们后面写命令的时候好找它们。
2. 确认打印机状态
打开电脑的控制面板 -> 设备和打印机,确认你的打印机已经连接好,而且设置成了默认打印机。如果有多台打印机,也得先挑好你要用哪一台。
方法一:最简单的方式 —— 选中打印
如果你不想记任何命令,这是最快最省事的办法:
- 打开刚才那个文件夹,按
Ctrl + A全选所有文件 - 在选中的文件上右键点击
- 选择打印
系统会自动把每个文件打开、发送打印任务、然后关闭。就这么简单。
缺点:有些格式的文件(比如PDF)可能会因为打开/关闭而卡顿,几十份文件可能要等一段时间。而且你无法控制打印的具体设置(比如双面打印、份数等)。
方法二:PowerShell 一键批量打印 —— 推荐!
这是我觉得最实用的方法,写一次脚本,以后遇到类似的事情直接复用。
第一步:创建脚本文件
在你的电脑上新建一个文本文件,把下面这段代码复制进去:
# 批量打印指定文件夹中的所有文件
# 使用方法:把这段代码保存为 print_all.ps1,然后运行
# 设置要打印的文件夹路径
$folderPath = "D:\合同打印"
# 获取文件夹里所有文件
$files = Get-ChildItem -Path $folderPath -File
# 遍历每个文件并发送打印
foreach ($file in $files) {
Write-Host "正在打印: $($file.Name)"
Start-Process -FilePath $file.FullName -Verb Print
}
Write-Host "所有文件已发送到打印机!"
第二步:保存脚本
把上面的代码保存为 批量打印.ps1,位置随便放,比如桌面。
第三步:运行脚本
右键点击这个 .ps1 文件,选择使用 PowerShell 运行。
如果提示权限问题,可以这样做:
- 按
Win + X,选择 Windows PowerShell(管理员) - 输入下面这行命令来允许运行脚本:
Set-ExecutionPolicy RemoteSigned - 然后运行:
powershell -ExecutionPolicy Bypass -File "C:\Users\你的用户名\Desktop\批量打印.ps1"
运行之后,你会看到命令行里不断滚动显示文件名,说明打印任务正在发送。
进阶版:加入更多功能
上面的脚本很简单,但有时候我们需要更智能一点。比如:
- 只打印特定格式的文件(比如只打印PDF)
- 打印前确认一下
- 等待每个文件打印完再处理下一个(避免打印机卡死)
下面是一个更完善的版本:
# 智能批量打印脚本 - 进阶版
# 功能:只打印指定格式、显示进度、等待完成
# ====== 配置区 ======
$folderPath = "D:\合同打印" # 打印文件夹路径
$fileExtensions = @("*.pdf", "*.docx") # 要打印的文件类型(可以自定义)
# ===================
# 检查文件夹是否存在
if (-not (Test-Path $folderPath)) {
Write-Host "错误:文件夹不存在!路径是 $folderPath" -ForegroundColor Red
exit
}
# 获取所有符合条件的文件
$files = Get-ChildItem -Path $folderPath -File |
Where-Object { $fileExtensions -match $file.Extension }
$total = $files.Count
$printed = 0
if ($total -eq 0) {
Write-Host "没有找到符合条件的文件!" -ForegroundColor Yellow
exit
}
Write-Host "找到 $total 个文件,开始打印..." -ForegroundColor Green
Write-Host "================================"
foreach ($file in $files) {
$printed++
$progress = "正在打印 $printed / $total : $($file.Name)"
Write-Host $progress
try {
# 发送打印任务
Start-Process -FilePath $file.FullName -Verb Print -ErrorAction Stop
# 等待一小段时间,让打印机有时间处理
Start-Sleep -Milliseconds 500
}
catch {
Write-Host "打印失败:$($file.Name) - $($_.Exception.Message)" -ForegroundColor Red
}
}
Write-Host "================================" -ForegroundColor Green
Write-Host "全部完成!共打印 $printed / $total 个文件" -ForegroundColor Green
把这个保存为 批量打印_智能版.ps1,用的时候改一下 $folderPath 那行的路径就行。
方法三:用 bat 批处理命令 —— 最原始但最通用
如果你不想用 PowerShell,也可以用传统的 .bat 批处理文件。这个方式的优点是任何Windows版本都能用。
创建批处理文件
新建一个文本文件,写入以下内容:
@echo off
chcp 65001 >nul
echo ========================================
echo 批量打印合同文件
echo ========================================
echo.
REM 设置文件夹路径,改这里!
set "FOLDER=D:\合同打印"
REM 检查文件夹
if not exist "%FOLDER%" (
echo 错误:文件夹不存在!
pause
exit /b 1
)
echo 开始打印...
echo.
REM 遍历所有PDF文件并打印
for %%F in ("%FOLDER%\*.pdf") do (
echo 正在打印: %%~nxF
start /min print "%%F"
timeout /t 1 /nobreak >nul
)
REM 遍历所有Word文件并打印
for %%F in ("%FOLDER%\*.docx" "%FOLDER%\*.doc") do (
echo 正在打印: %%~nxF
start /min print "%%F"
timeout /t 1 /nobreak >nul
)
echo.
echo ========================================
echo 全部打印任务已发送!
echo ========================================
pause
保存为 批量打印.bat,用的时候双击运行就行。
这个脚本的工作原理
start /min print "文件路径"这行命令是关键,它会把文件发送到默认打印机timeout /t 1是让每个文件之间暂停1秒,避免打印机 overwhelm- 你只需要改
FOLDER那行的路径,其他不用动
几个实用小技巧
1. 打印时指定份数
有时候你需要打印好几份,可以这样改脚本里的打印命令:
在 PowerShell 里:
# 打印3份
$printJob = Start-Process -FilePath $file.FullName -Verb Print -PassThru
在 bat 里:
print /d:"\\打印机共享名" "文件路径"
2. 只打印 PDF
如果文件夹里有很多 Word 文档,但你只想打印 PDF:
# 只获取PDF文件
$files = Get-ChildItem -Path $folderPath -Filter "*.pdf" -File
3. 检查打印队列
打印完之后,想知道打印机任务排到哪了?
- 按
Win + R,输入control printers打开打印机设置 - 右键你的打印机,选择查看现在正在打印什么
- 就能看到所有等待打印的文件
注意事项和避坑指南
⚠️ 纸够不够?
别笑,真有人打了一半发现没纸了。先检查打印机纸盒,确认纸张充足。
⚠️ 双面打印怎么设?
如果需要双面打印,建议先手动打印一份测试,确认打印机设置正确后再批量打印。可以在打印设置里选择”双面打印”,但这通常需要在打印前逐个设置,批量打印时不太好控制。
⚠️ 文件不要同时打开
批量打印时,确保你要打印的文件没有正在被其他程序打开,否则可能会打印出错或者重复打印。
⚠️ 打印机要稳定
如果打印机正在处理其他任务,建议等它空闲了再开始批量打印,不然可能会卡顿或者丢文件。
最后说两句
其实这事儿没那么复杂,核心就一句话:让电脑帮你干活,而不是你帮电脑干活。
刚开始你可能觉得写个脚本有点麻烦,但一旦你写好了、试成功了,以后每次遇到类似的情况,都是点一下鼠标的事。而且这套方法不只是打印合同能用,打印发票、打印报表、打印材料……只要是批量打印的需求,这个思路全都能套上。
下次老板再突然让打印几十份文件,你就可以淡定地说一句”好的,马上就好”,然后点一下脚本,去喝杯咖啡了。
