我要打印/和/或保存其中带有该特定子字符串的所有打印机。
@echo off
pause
for /f "tokens=*" %%i in ('wmic printer get name | find /i '\\printR'') do (
echo %%i
)
pause
我尝试运行它,cmd窗口消失
答案 0 :(得分:1)
第一个示例不使用for循环,应在batch-file上运行:
@WMIC Printer Where "Name Like '\\\\printR%%'" Get Name|More +1
More +1
仅用于删除标题行Name
,如果不需要,可以随意删除该管道。
第二个示例使用了for循环,下面以batch-file语法进行了演示:
@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
运算符与where一起使用,假设根据您的问题,您的字符串以\\printR
开头。 Like
使用 %
字符作为通配符,因此,如果要在字符串中的任何位置进行匹配,请仅在搜索字符串的末尾使用它,请使用{ {1}}。您还将注意到,反斜杠用作转义字符,因此将其加倍以指定文字反斜杠。您可能还需要注意,搜索不区分大小写,因此%%\\\\printR%%
也将匹配。上面的答案还假设您实际上是要将\\PRINTr
字符串与打印机\\printR
进行匹配。
请记住,如果您要在command-prompt(cmd)上使用这些示例,则将修改 Name
的所有实例, %%
。