2015-09-21 17 views
0

Я пытаюсь написать пакетный файл, который ищет через устройства с помощью devcon, а затем запускает «devcon enable» на этих устройствах.Использование команды pipe в пакетном файле

Мой командный файл выглядит следующим образом:

for /f "tokens=1 delims=:" %%i in ('devcon find *VENDER_INFO* ^| findstr /C:"DEVICEINFO"') do devcon enable "@"%%i 

Вы можете игнорировать «VENDER_INFO» и «DeviceInfo», как я просто отредактированный это сделать команды легче читать.

Когда я бегу this.bat файл, он появляется, как будто команда

devcon find *VENDER_INFO* ^| findstr /C:"DEVICEINFO" 

работает только первую часть и не в трубе результаты через

findstr /C:"DEVICEINFO" 

Вы можете увидеть что-то неправильно с моим .bat-файлом? Почему он игнорирует трубу и вторую часть команды find? Я попытался удалить «^», но это не удается и говорит «|» было неожиданным.

+0

[Windows Device Console (DevCon.exe)] (https://msdn.microsoft.com/en-us/library/windows/hardware/ff544707%28v = vs.85% 29.aspx? f = 255 & MSPPError = -2147217396) для справки. Существуют ли какие-либо специальные символы в вашей строке 'VENDER_INFO'? –

+0

Вы можете показать вывод 'devcon find * VENDER_INFO *'? И что вы пытаетесь сопоставить? – Paul

+0

То, что вы делаете, отлично подходит для меня на моей машине. Вы пытались запустить команду отдельно, не находясь внутри цикла for и убедившись, что она возвращает то, что вы хотите? – lordjeb

ответ

0

Команда find требует двойных кавычек.

Прочитайте помощь с этим:

find /? 

 Смежные вопросы

  • Нет связанных вопросов^_^