![从 Windows 7 命令行打印](https://linux22.com/image/1330426/%E4%BB%8E%20Windows%207%20%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%93%E5%8D%B0.png)
我想在 Windows 7 中自动执行某些打印操作。最好通过命令行。就像我右键单击并选择“打印”一样。
尝试了命令:
C:\>print /D:"CutePDF Writer" test.txt
该打印机应该可以创建 PDF 文件(如 XPS 打印机),但打印机队列中却没有显示任何内容。有什么想法吗?
答案1
这print
命令使用以下语法进行/d:
切换:
指定要在其上打印作业的打印机。您可以通过指定计算机上打印机所连接的端口来指定本地打印机。并行端口的有效值为 LPT1、LPT2 和 LPT3。串行端口的有效值为 COM1、COM2、COM3 和 COM4。您还可以通过队列名称 (\ServerName\ShareName) 指定网络打印机。如果您未指定打印机,则打印作业将发送到 LPT1。
这意味着你不能用它"CutePDF Writer"
作为论据。
有两种方法可以起作用:
为您的打印机分配一个 COM 端口。
- 打开开始 → 控制面板 → 设备和打印机。
- 右键单击CutePDF 作家并选择打印机属性。
- 在里面端口选项卡,将未使用的端口从
COM1:
到分配COM4:
给您的打印机。 例如,如果您选择,则
COM3
使用以下命令打印:print /d:COM3 test.txt
共享打印机。
- 打开开始 → 控制面板 → 设备和打印机。
- 右键单击CutePDF 作家并选择打印机属性。
- 在里面分享选项卡,决定共享打印机并为其分配共享名称。
例如,如果您选择,则
CutePDF
使用以下命令打印:print /d:\\%COMPUTERNAME%\CutePDF test.txt
答案2
打印已注册的文件类型 Windows (95/98/NT/2000) 中具有文件类型关联的文件可使用鼠标右键打印
例如,在注册表项中的 .rtf 文件中可以看到这种关联:
"HKEY_LOCAL_MACHINE\SOFTWARE\Classes\rtffile\shell\printto\command"
该命令如下所示:
"%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /pt "%1" "%2" "%3" "%4"
意思是 :
"wordpad.exe /pt TextFileName PrinterName [ DriverName [ PortName ] ]"
(方括号表示可选)。这意味着您可以根据此模式使用注册表项中的此信息直接调用实际应用程序cmd
。或者,您可以通过此关联使用 Windows Vista 中提供的 powershell 间接调用它:
powershell "-Command" "& {Start-Process -FilePath 'test.txt' -ArgumentList '\"Microsoft Print to PDF\"' -Verb 'printto' }"
由于未知原因,它的简洁形式(powershell -command "start -verb printto AnyFile.rtf PrinterName [ DriverName [ PortName ] ]"
)或从 powershell 提示符运行它在我的电脑上不起作用。
它适用于几乎所有已注册的文件类型,这些文件类型具有已注册的动词(打印到)!
更新:列出已安装的打印机 wmic printer list brief
UPD:还有一个打印动词。它不接受除文件之外的任何参数。因此,如果您替换打印到和打印并删除额外的打印机参数。
但打印机驱动程序通常会显示用户对话框。 Bullzip Pdf 打印机中可以禁用用户对话框显示。
答案3
你好,如果您了解 DOS,那么将 CutePDF 设置为默认打印机更容易,然后将打印机设置为默认打印机应该没有问题,然后再次重置为默认打印机设置。
要打印文本文件、htm 文件、bat 文件或任何文本文件,请输入以下内容
notepad /p test.txt
对于其他程序,请找到用于打印的命令行格式(在 regedit 或文档中)
答案4
控制面板,然后设备和打印机 右键单击打印机,然后打印机属性 确保打印机是共享的,并且“共享名称”不超过 8 个字符。在 DOS 提示符下 >net use lpt1:\127.0.0.1\ 现在您的 DOS 程序将打印!