theuntouchable
Goto Top

Batch FOR Schleife mit auszuführendem Befehl und FIND

Hallo Jungs und Mädels,

ich habe folgendes Problem:
Es soll von einem Android Telefon die Modelbezeichnung ausgelesen werden.
Das ganze passiert durch den Aufruf der ADB.exe folgender Weise:

adb.exe shell cat /system/build.prop | find "product.model"  

Als Ergebnis kommt dann folgendes heraus:

ro.product.model=HTC Sensation Z710e

Um das ganze in einer Variable zu speichern und um nur die Bezeichnung zu bekommen, habe ich folgende FOR Schleife geschrieben:

for /f "tokens=2* delims==" %%a in ('%ADB-Path%\adb.exe shell cat /system/build.prop ^| find "product.model"') do set Model=%%a  

Da diese Batch auch auf anderen Systemen laufen soll, in denen der Pfard zur ADB.exe nicht in der Path Variable wie bei mir steht, ist der Pfad dazu in der Variable %ADB-Path% hinterlegt.

Das ganze sieht ausgeführt so aus:

>for /F "tokens=2* delims==" %a in ('D:\Tools\Android\android-sdk-windows\platform-tools\adb.exe shell cat /system/build.prop | find "product.model"') do set Model=%a  

>set Model=HTC Sensation Z710e

Funktioniert auch so weit.. Es sei denn man hat ein Leerzeichen im Pfad, dann hört der Spaß auf zu funktionieren. Füge ich um die Variable %ADB-Path% Anführungszeichen ein, funktioniert es überhaupt nicht mehr..

>for /F "tokens=2* delims==" %a in ('"D:\Tools\Android\android-sdk-windows\platform-tools\adb.exe" shell cat /system/build.prop | find "product.model"') do set Model=%a  

>Das System kann den angegebenen Pfad nicht finden.

Kann mir wer helfen..?

Grüße

Content-ID: 189700

Url: https://administrator.de/contentid/189700

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

TheUntouchable
TheUntouchable 16.08.2012 um 10:48:48 Uhr
Goto Top
Habe mir selber einen Workaround erstellt.

:SetPathVariable
SET Path="%ADB-Path%";path%
GOTO :EOF

Jetzt kann ich die adb.exe einfach aufrufen ohne das ich Anführungszeichen oder sonstiges brauche.