可通过三种方法批量打印word文档:一、windows资源管理器多选右键打印;二、word中运行vba宏自动遍历打印指定文件夹内.doc/.docx文件;三、powershell调用word com对象后台静默打印。

如果您需要一次性打印多个Word文档,但逐个打开并打印效率低下,则可以通过系统级操作或Word内置功能实现批量处理。以下是完成此任务的具体步骤:
一、使用Windows资源管理器批量选择打印
该方法不依赖Word程序运行,直接调用系统默认打印处理器,适用于已保存的.docx或.doc文件,操作快捷且兼容性强。
1、在文件夹中按住Ctrl键,依次点击需打印的Word文档图标进行多选;
2、右键任意一个被选中的文档,在弹出菜单中选择打印选项;
3、系统将自动启动Word(如未运行)并逐个加载文档,调用默认打印机执行后台打印任务。
二、通过Word“打开并打印”宏命令批量处理
利用Word内置的VBA功能,可编写简易宏脚本实现指定文件夹内所有Word文档的自动打开、打印与关闭,避免人工干预。
1、打开任意Word文档,按Alt + F11进入VBA编辑器;
2、在左侧项目窗口中右键Normal,选择“插入”→“模块”;
3、在新模块中粘贴以下代码:
Sub BatchPrintAllDocs()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then
ChDir fd.SelectedItems(1)
Call PrintAllWordDocsInFolder(fd.SelectedItems(1))
End If
End Sub
Sub PrintAllWordDocsInFolder(folderPath As String)
Dim fso As Object, folder As Object, file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
If LCase(fso.GetExtensionName(file.Name)) = "docx" Or LCase(fso.GetExtensionName(file.Name)) = "doc" Then
Documents.Open file.Path
ActiveDocument.PrintOut
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
End If
Next
End Sub
4、按F5运行BatchPrintAllDocs宏,选择目标文件夹后确认,脚本将自动遍历并打印所有Word文档。
三、借助PowerShell命令行批量触发打印
该方式绕过图形界面,在无用户交互前提下完成批量打印,适合预设路径下的稳定文档集,且不显示Word窗口。
1、以管理员身份运行PowerShell;
2、输入以下命令并回车:
$word = New-Object -ComObject Word.Application
$word.Visible = $false
Get-ChildItem "C:\Your\Target\Folder\*.docx" | ForEach-Object {
$doc = $word.Documents.Open($_.FullName)
$doc.PrintOut()
$doc.Close()
}
$word.Quit()
3、将命令中C:\Your\Target\Folder\替换为实际存放Word文档的完整路径;
4、执行完毕后,Word进程自动退出,所有文档已发送至默认打印机队列。











