Wie Monitorausgabe in Batch Variable einbinden ?

IT-FiSi

IT-FiSi

Fortgeschrittenes Mitglied
20
Hallo,

ich verbinde verschiedene Android Geräte mit ADB (Android Debug Bridge)
um diverse Aktion auszuführen z.B. Backups.
Ich habe mehrere Geräte und wenn ich ein Geräte mit dem PC verbinde
ist der erste Befehl lautet dann adb devices
Zur Vereinfachung möchte ich jetzt die Aufgaben per Batch Datei erledigen.

Geräte:
08abcdef HTC Phone
579a4e5d Samsung
9128549759AB19FE THL China Phone
=========

Variable soll sein ANDROID_SERIAL

Die Bildschirmausgabe sieht so aus, (es wird immer nur ein Gerät zur gleichen Zeit angeschlossen).

List of devices attached
08abcdef device
9128549759AB19FE device
579a4e5d unauthorized

Als erstes benötige ich einen Klarnamen (die Geräte ID ist 08abcdef der Klarname lautet HTC Phone).
das muss irgendwie in eine Variable gesteckt werden, dann kann ich damit weiterarbeiten. Die Variable möchte ich als BackupDateiName dann verwenden.

so ungefähr:
adb backup -shared -f "D:\Eigene Dateien\Phone\APKbackup\ANDROID_SERIAL.ab"

Meine Frage:
wie bekomme ich von der Geräte ID den Klarnamen angezeigt ?
und dann in eine Variable ?

Ich hoffe es kann mir jemand helfen
und sage schon jetzt vielen Dank

Grüsse Pepe
 
Unter Windows kannst du das mit FOR erledigen (folgenden Code in eine Batch-Datei kopieren):
Code:
@echo off
setlocal enabledelayedexpansion

rem Iterate through connected devices
for /F "eol=; tokens=1 skip=1" %%i in ('adb devices') do (
	set ANDROID_SERIAL=%%i
	rem Get model for current device
	for /F "tokens=*" %%j in ('adb -s !ANDROID_SERIAL! shell getprop ro.product.model') do (
		rem Filter carriage return 
		set ANDROID_DEVICE=%%j
		set ANDROID_DEVICE=!ANDROID_DEVICE:~0,-1!
		
		rem Echo and do backup
		echo Creating backing: "!ANDROID_SERIAL!_!ANDROID_DEVICE!.ab"
		adb backup -shared -f "D:\Eigene Dateien\Phone\APKbackup\!ANDROID_SERIAL!_!ANDROID_DEVICE!.ab"
	)
)
endlocal
Sollte auch mit mehreren gleichzeitig angeschlossenen Devices gehen. Die werden dann einfach nacheinander abgearbeitet.

In diesem Fall liegt die ID in der Variable !ANDROID_SERIAL! (ist aber nur Kosmetik, du könntest auch %%i verwenden.) und der Device-Name in !ANDROID_DEVICE! (ja, die Ausrufezeichen sind wichtig/richtig). Die Variablen stehen aber nur innerhalb der Batch-Datei zur Verfügung.

Für Linux/Bash müsste ich noch etwas grübeln/probieren.


EDIT: Zur Zeit wird als "Klarname" nur das verwendet, was ADB devices als Bezeichnung/Beschreibung anzeigt.
Einen "Klarnamen" kann man über 'adb -s [DeviceID] shell getprop ro.product.model' herausbekommen. Daran arbeite ich gerade, aber habe noch Probleme mit Zeilenumbrüchen.

EDIT 2: Ok, habe das "Carriage Return"-Problem gelöst. Code angepasst. Nun wird als Klarname die entsprechende Property des Gerätes verwendet.

EDIT 3: Anhang hinterlegt. Hier musst du nur die Dateiendung in .cmd umbenennen und den Backup-Pfad anpassen.
 

Anhänge

  • BackupAllDevices.txt
    577 Bytes · Aufrufe: 184
Zuletzt bearbeitet:
  • Danke
Reaktionen: IT-FiSi
Super ... kann einfach nur Danke sagen :thumbsup:
 

Ähnliche Themen

jandroid
Antworten
3
Aufrufe
232
DOT2010
DOT2010
say_hello
Antworten
0
Aufrufe
64
say_hello
say_hello
W
  • Wintertime
Antworten
7
Aufrufe
206
chk142
C
Zurück
Oben Unten