如何使用特定标签打印所有打印机

时间:2019-06-04 17:36:41

标签: batch-file

我要打印/和/或保存其中带有该特定子字符串的所有打印机。

@echo off
pause
for /f "tokens=*" %%i in ('wmic printer get name | find /i '\\printR'') do (
    echo %%i
)
pause

我尝试运行它,cmd窗口消失

1 个答案:

答案 0 :(得分:1)

第一个示例不使用循环,应在上运行:

@WMIC Printer Where "Name Like '\\\\printR%%'" Get Name|More +1

More +1仅用于删除标题行Name,如果不需要,可以随意删除该管道。

第二个示例使用了循环,下面以语法进行了演示:

@For /F "Skip=1Tokens=*" %%A In ('WMIC Printer Where "Name Like '\\\\printR%%'" Get Name 2^>Nul')Do @For /F "Tokens=*" %%B In ("%%A")Do @Echo(%%B

请注意,后者并不能满足任何尾随空格的需要,因此,如果您需要它来作进一步使用,则需要相应地进行修改(尽管一般原理不会有太大变化)

我已将Like运算符与一起使用,假设根据您的问题,您的字符串以\\printR开头。 Like使用 % 字符作为通配符,因此,如果要在字符串中的任何位置进行匹配,请仅在搜索字符串的末尾使用它,请使用{ {1}}。您还将注意到,反斜杠用作转义字符,因此将其加倍以指定文字反斜杠。您可能还需要注意,搜索不区分大小写,因此%%\\\\printR%%也将匹配。上面的答案还假设您实际上是要将\\PRINTr字符串与打印机\\printR进行匹配。

请记住,如果您要在)上使用这些示例,则将修改 Name 的所有实例, %%