Этот первый пример не использует цикл для и должен работать из пакетного файла :
@WMIC Printer Where "Name Like '\\\\printR%%'" Get Name|More +1
More +1
isиспользованный выше только для удаления строки заголовка Name
, не стесняйтесь удалять этот трубопровод, если в этом нет необходимости.
Во втором примере используется цикл для .представленный ниже в 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
с , где , предполагая, что ваша строка начинается с\\printR
согласно вашему вопросу.Like
использует символ %
в качестве подстановочного знака, поэтому я использовал его только в конце строки поиска, если вы хотите сопоставить его где-либо в строке, используйте вместо этого %%\\\\printR%%
.Вы также заметите, что обратная косая черта используется как escape-символ, поэтому она удваивается, чтобы указать буквальную обратную косую черту.Вам также может быть интересно отметить, что поиск не учитывает регистр, поэтому \\PRINTr
также будет соответствовать.Ответы выше также предполагают, что вы действительно хотите сопоставить свою строку \\printR
с принтером Name
.
Имейте в виду, что вы использовали эти примеры в команде .приглашение ( cmd ), вы должны изменить все экземпляры %%
на %
.