Wie kann ich mir eine bestimmte Zeile aus der CMD als Textdatei oder Fehlermeldung ausgeben lassen?

1 Antwort

Mit grep kannst du die Ausgabe nach einer Zeile durchsuchen, die einen bestimmten Text enthält und nur diese Zeile ausgeben.

Wenn zum Beispiel der Befehl example die folgende Ausgabe erzeugt:

Foo 12345
Bar 6789
...

erhälst du mit diesem Befehl (bash Syntax):

example | grep Foo

nur die Ausgabe:

Foo 12345

Die Ausgabe kannst du mit dem > Operator in eine Datei umleiten:

example | grep Foo > file.txt

Ob CMD diese Operatoren oder Äquivalente hat, weiß ich nicht. Es gibt aber bash für Windows.

Woher ich das weiß:Studium / Ausbildung – Ich studiere Informatik
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:00

Hab ich nicht genau verstanden. Habe jetzt bash für Windows aktiviert und installiert. Möchte jetzt das diese cmd Zeile in einer Art popup angezeigt wird

1
DummeStudentin  15.07.2022, 14:08
@Ichbinsnicht07

Warum denn unbedingt in einem Popup? Reicht es nicht, wenn die Zeile einfach ausgegeben wird?

Popups sind bei Kommandozeilenanwendungen nicht üblich. Ich weiß nicht, ob das so einfach möglich ist.

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:13
@DummeStudentin

okay, da das würde auch reichen. Leider verstehe ich die ANleitung trotzdem nicht wikrlich

0
DummeStudentin  15.07.2022, 14:15
@Ichbinsnicht07

Du hast ja irgendeinen Befehl, den du eingibst, um diese lange Ausgabe zu erhalten? Wenn es um Akkudaten geht, vielleicht irgendetwas mit adb?

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:17
@DummeStudentin

ja. adb shell dumpsys battery
da gibt es einen Wert der heißt "mSavedBatteryAsoc" die Zahl dahinter hätte ich gerne ausgegeben

0
DummeStudentin  15.07.2022, 14:18
@Ichbinsnicht07

Dann gib das in Bash ein:

adb shell dumpsys battery | grep mSavedBatteryAsoc

Als Ausgabe solltest du nur die Zeile mit dem Wert sehen.

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:20
@DummeStudentin

-bash: adb: command not found...
adb ist aber drauf und funktioniert in der normalen cmd

0
DummeStudentin  15.07.2022, 14:23
@Ichbinsnicht07

Hmm, dann kennt bash den Path nicht. Ich verwende kein Windows, also kann ich nicht sagen, wie sich das beheben lässt.

Vielleicht musst du adb.exe schreiben statt adb? Falls das auch nicht geht, könntest du statt adb den gesamten Pfad zur adb.exe angeben.

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:27
@DummeStudentin

mit adb.exe hat es geklappt vielen Dank. aber wie krieg ich diesen Befehl jetzt auf den desktop als Verknüpfung? Im normalem CMD geht es ja nicht. Ich muss immer erst die App Debian öffnen und kann dann dort den Command ausführen

0
DummeStudentin  15.07.2022, 14:30
@Ichbinsnicht07

Achso, du verwendest bash in WSL. Normalerweise (also unter Linux) könnte man auf dem Desktop einfach eine .sh Datei anlegen, die diesen Befehl enthält.

Vielleicht ist Windows so schlau und öffnet die Datei mit Debian WSL.

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:35
@DummeStudentin

unter was muss ich dass denn dann abspeichern? Habe zum testen jetzt eine Batchdatei erstellt die Debian.exe öffnet. Wie kriege ich das jetzt hin, dass die Datei den gewünschten Befehl in das Fenster schreibt?

0
DummeStudentin  15.07.2022, 14:44
@Ichbinsnicht07

Eine Batchdatei mit

bash -c "adb shell dumpsys battery | grep mSavedBatteryAsoc"

sollte funktionieren.

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 14:54
@DummeStudentin

ja jetzt funktioniert es Danke. Ist es möglich den ausgegbenen Text, in dem Fall mSavedBatteryAsoc durch etwas wie Akkuzustand oder so zu ersetzen? Es sollte so Benutzerfreundlich wie möglich für Mitarbeiter sein

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 15:02
@DummeStudentin

okay, probiere ich gleich mal. Noch eine etwas kompliziertere Frage... ich weiß nicht ob es überhaupt möglich ist...
Um den mAH Wert des Akkus auszurechen muss man die ersten 4 Stellen des Wert "Charge Counter" durch den Wert "level" rechnen. Ist das auch möglich, dass das Dort das Ergebnis angezeigt wird?

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 15:06
@DummeStudentin
bash -c "adb shell dumpsys battery | $((grep Charge_counter/grep lebel))"

hab es so probiert, da kommt nur syntax error

0
DummeStudentin  15.07.2022, 15:08
@Ichbinsnicht07

Du versuchst, 2 Textzeilen zu dividieren, die neben Zahlen auch andere Zeichen enthalten. Das funktioniert nicht.

0
Ichbinsnicht07 
Fragesteller
 15.07.2022, 15:11
@DummeStudentin

Die Werte an sich enthalten nur Zahlen.. wie muss ich es denn machen? Wichtig ist auch das bei charge counter nur die ersten 4 Zeilen genommen werden und nicht alle 7

0