【问题标题】:Get default printer name from command line?从命令行获取默认打印机名称?
【发布时间】:2012-10-29 22:58:53
【问题描述】:

Microsoft Windows XP 附带一个 VBS 脚本,用于从命令行管理本地和网络打印机:

从命令行获取默认打印机详细信息:

cscript C:\windows\system32\prnmngr.vbs -g

从 Windows 命令行获取添加到系统的打印机列表:

cscript C:\windows\system32\prnmngr.vbs -l

是否有适用于 Windows 7 的等效命令?我只需要获取默认打印机详细信息并获取连接到系统的打印机列表。

【问题讨论】:

    标签: windows windows-7


    【解决方案1】:

    在 Windows 7 中可以找到这些相同的脚本

    C:\Windows\System32\Printing_Admin_Scripts\en-US
    

    【讨论】:

      【解决方案2】:

      所有打印机名称的列表并显示默认的一个(您可以阅读文档获得更多详细信息)

      wmic printer get name,default
      

      如果你想输出到文件使用:

      wmic printer get name,default > D:\catalog\file.txt
      

      可用性

      wmic 命令是一个外部命令,在以下 Microsoft 操作系统中作为 wmic.exe 可用。

      Windows XP professional
      Windows 2003
      Windows Vista
      Windows 7
      Windows 8
      Windows 10
      

      【讨论】:

      • 这在 Windows 10 中对我有用:for /f "tokens=2 delims==" %A in ('wmic.exe printer WHERE default^=TRUE get name /VALUE') do set "default_printer=%~A"
      【解决方案3】:

      我在 sideXside 文件夹中找到了我的...

      C:\windows\winsxs\x86_microsoft-windows-p..inscripts.resources_31bf3856ad364e35_6.1.7600.16385_en-us_0e83b619ada3e7ed\

      我运行了以下内容: cscript C:\windows\winsxs\x86_microsoft-windows-p..inscripts.resources_31bf3856ad364e35_6.1.7600.16385_en-us_0e83b619ada3e7ed\prnmngr.vbs -g

      成功了。

      【讨论】:

        【解决方案4】:

        在 Windows 8.1 上列出活动的打印机组件:

        c:>cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -l | findstr "打印机名称"

        【讨论】:

          【解决方案5】:

          在 Windows 10 上,脚本位于与 Windows 7 相同的位置。 执行以下命令显示默认打印机。

          cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -g
          

          注意如果没有默认打印机,脚本将不返回任何内容

          【讨论】:

            【解决方案6】:

            在 Windows 8.1 中删除打印机:

            cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -d -p "Printer name"
            

            我遇到了打印机没有显示在设备/打印机中的问题,因此无法将其删除,尽管当我在 Firefox 中按文件 > 打印时它就在那里。这也阻止了我在实际安装中使用打印机名称(它让我不得不在默认打印机的末尾附加 _1!”

            【讨论】:

              【解决方案7】:

              使用批处理文件(无 VBScript 文件):

              @echo off
              
              ::Get printer CLSID
              for /f %%a in ('reg query HKCU\Printers\Defaults') do (set regkey=%%a)
              ::Get printer name from the previous CLSID
              
              for /f "tokens=3*" %%a in ('reg query %regkey%') do (set printername=%%a %%b)
              echo Printer name is: %printername%
              

              希望对你有帮助

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-01-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-12-26
                • 1970-01-01
                相关资源
                最近更新 更多