2012-04-09 4 views
0

Я пытался получить определенные переменные fastboot из командного файла. Я использовал что-то вроде:fastboot getvar из командного файла

for /f "tokens=2 delims=:" %%a in ('fastboot.exe getvar version-bootloader') do @echo version is %%a 

Но я получаю вывод в командной строке, а не в переменной %% a. команда «fastboot.exe getvar version-bootloader» отлично работает в командной строке. Я также пробовал делать:

fastboot.exe getvar version-bootloader >> temp.txt 

но temp.txt всегда пусто и я получаю выход из командной строки, вместо файла. Есть ли альтернатива этому?

+1

Кажется, что 'fastboot.exe' не использует поток stdout. Вы можете попробовать перенаправить stream2. 'fastboot.exe getvar version-bootloader 2> temp.txt' – jeb

+0

Thanx jeb, он действительно работает. –

ответ

1

выхода быстрой загрузки направлен на ошибку потока, вы можете направить поток ошибок на стандартный поток путем добавления 2>&1

  1. скрипта получит две строки, так как быстрая загрузка GETvar возвращает дополнительную строку с истекшим временем.
  2. сценарий разбирает версию с ведущим пространством, вам следует добавить пробел к разделителю (это по умолчанию, но когда вы даете delims он будет перезаписан)

вы должны использовать:

for /f "tokens=2 delims=: " %%a in ('fastboot.exe getvar version-bootloader 2^>^&1 ^| findstr version') do @echo version is %%a 
+0

Хотя комментарий jeb сделал эту работу, ваш комментарий позволил мне разобрать ответ. Thnx –

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