[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 读注册表取系统默认打印机的BAT有点小问题,求指点

是读注册表取系统默认打印机的;
  1. @ECHO OFF
  2. SET SF="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows"
  3. FOR /F "tokens=*" %%I IN ('REG QUERY %SF% /v Device 2^>NUL^|FIND /I "Device"') DO echo %%I
  4. pause
复制代码
现在结果是:
Device  REG_SZ  HP P3015dn,winspool,Ne03:
现在只想返回HP P3015dn
前面的Device  REG_SZ  不需要显示
后面的,winspool,Ne03: 也不需要

求高人指点

欢迎关注本论坛powershell板块
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 9# PowerShell


    powershell 真的好强大。能留个扣扣不?我真的很想学

TOP

建议大家用最新版的win,这样就有了最新版的powershell,新版powershell自带这些打印机管理命令,其他任何语言都无法实现,

powershell 4.0 自带打印机管理库(模块),这个模块叫做 PrintManagement,
查看这个模块中有哪些命令用:
PS C:\> get-command * -Module PrintManagement

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Add-Printer                                        PrintManagement
Function        Add-PrinterDriver                                  PrintManagement
Function        Add-PrinterPort                                    PrintManagement
Function        Get-PrintConfiguration                             PrintManagement
Function        Get-Printer                                        PrintManagement
Function        Get-PrinterDriver                                  PrintManagement
Function        Get-PrinterPort                                    PrintManagement
Function        Get-PrinterProperty                                PrintManagement
Function        Get-PrintJob                                       PrintManagement
Function        Read-PrinterNfcTag                                 PrintManagement
Function        Remove-Printer                                     PrintManagement
Function        Remove-PrinterDriver                               PrintManagement
Function        Remove-PrinterPort                                 PrintManagement
Function        Remove-PrintJob                                    PrintManagement
Function        Rename-Printer                                     PrintManagement
Function        Restart-PrintJob                                   PrintManagement
Function        Resume-PrintJob                                    PrintManagement
Function        Set-PrintConfiguration                             PrintManagement
Function        Set-Printer                                        PrintManagement
Function        Set-PrinterProperty                                PrintManagement
Function        Suspend-PrintJob                                   PrintManagement
Function        Write-PrinterNfcTag                                PrintManagement

Get-Printer  即你需要的,当然还有其他命令,可以命令行管理打印任务等。


目前最新版win,即win8.1u1激活可用:
KMSpico  ,官方下载地址在:            
http://forums.mydigitallife.info ... 0dbcb097890867106d3

开始菜单可用:
StartIsBackPlus_1.6.1_XiaZaiBa.zip
有了这个程序,可以直接跳过开始屏幕直接进入桌面,这样来讲,win8和win7就差不多了。

win8.1 u1 msdn版
文件名cn_windows_8.1_enterprise_with_update_x64_dvd_4048578.iso
SHA1  2D9BFE965AE0206860EFFA23C2E6C7FAE1241303
文件大小  3.86GB
发布时间2014-04-08
ed2k://|file|cn_windows_8.1_enterprise_with_update_x64_dvd_4048578.iso|4140781568|8A3E13590D8A6EDF259574CB797FC75E|/
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

522235677 发表于 2014-6-20 16:26


这个对了

多谢楼上各位

TOP

  1. @echo off
  2. SET SF="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows"
  3. for /f "delims=," %%a in ('REG QUERY %SF% /v Device 2^>NUL^|FIND /I "Device"') do (
  4. for /f "tokens=2*" %%b in ("%%a") do echo %%c
  5. )
  6. pause
复制代码

TOP

回复 3# ditto


    我做了测试时正常的,delims=, 这里,符号后面还有个空格

TOP

先以逗号分隔开,然后再用空格分隔。2*不就行了

TOP

回复 2# changedirectory


reg query 的结果里面那些空白的地方不一定是空格,看看就知道了:
  1. REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v Device | FIND /I "Device" > a.txt
复制代码

TOP

本帖最后由 ditto 于 2014-6-20 16:18 编辑
changedirectory 发表于 2014-6-20 15:58


结果好像不对,是:
winspool Ne03:

TOP

  1. @ECHO OFF
  2. SET SF="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows"
  3. FOR /F "tokens=3-4 delims=, " %%I IN ('REG QUERY %SF% /v Device 2^>NUL^|FIND /I "Device"') DO echo %%I %%J
复制代码

TOP

返回列表