Я пытаюсь написать пакетный файл, который ищет через устройства с помощью 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? Я попытался удалить «^», но это не удается и говорит «|» было неожиданным.
[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'? –
Вы можете показать вывод 'devcon find * VENDER_INFO *'? И что вы пытаетесь сопоставить? – Paul
То, что вы делаете, отлично подходит для меня на моей машине. Вы пытались запустить команду отдельно, не находясь внутри цикла for и убедившись, что она возвращает то, что вы хотите? – lordjeb