2012-04-09 2 views
0

Ich habe versucht, bestimmte Fastboot-Variablen aus einer Batch-Datei zu bekommen. Ich habe etwas wie:Fastboot getvar aus Batch-Datei

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

Aber ich bekomme die Ausgabe auf der Kommandozeile, nicht in der Variable %% a. Der Befehl 'fastboot.exe getvar version-bootloader' funktioniert perfekt in der Kommandozeile. Ich habe auch versucht zu tun:

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

aber temp.txt ist immer leer, und ich empfangen die Ausgabe auf der Kommandozeile, statt der Datei. Gibt es eine Alternative dazu?

+1

Es scheint, dass 'fastboot.exe' den stdout-Stream nicht verwendet. Sie könnten versuchen, stream2 umzuleiten. 'fastboot.exe getvar version-bootloader 2> temp.txt' – jeb

+0

Danke jeb, es funktioniert. –

Antwort

1

Fast Boot Ausgang geleitet wird Strom auf Fehler, können Sie Fehlerstrom zu Standard-Stream direkt von 2>&1

  1. Ihr Skript hinzugefügt werden zwei Linien erhalten, da Fast Boot getvar zusätzliche Zeile kehrt mit der Zeit verstrichen ist.
  2. Ihr Skript die Version mit einem führenden Platz parst, shoud Sie ein Leerzeichen Trennzeichen hinzufügen (es Standard ist, aber wenn man delims geben wird sie überschrieben)

Sie verwenden sollten:

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

Obwohl Jebs Kommentar den Job gemacht hat, erlaubte mir Ihr Kommentar, die Antwort zu analysieren. Thnx –

Verwandte Themen