Text nach Device-IDs durchsuchen und als Variable an eine BAT weitergeben
Hallo zusammen,
erst einmal vielen Dank für die vielen guten Tipps, die ich hier schon gefunden habe.
Jetzt komme ich aber nicht weiter.
Das Programm USB Image Tool erstellt Images von USB-Sticks und kann auch diese Image zurückschreiben. Aber immer nur auf einen USB-Stick.
Meine Idee war es jetzt, mit einem Batch einfach ein paar CMD Fenster aufzurufen, und dann auf mehrere Sticks das Image kopieren (zu Fuß geht das).
Leider benötigt das Programm in der Kommandozeile nicht den Laufwerksbuchsten, sondern eine Device-ID.
Diese läßt sich auch auslesen und im CMD-Fenster anzeigen oder ggf. in eine TXT Datei umleiten.
Das sieht dann so aus:
(ohne die Striche)
"Leerzeile"
USB Image Tool 1.57
COPYRIGHT 2006-2010 Alexander Beug
http://www.alexpage.de
"Leerzeile"
Device | Friendly Name | Volume Name | Volume Path | Size
------------------------------------------------------------------------------
2448 | Flash Disk USB Device | GRUMMEL | M:\ | 907 MB
2576 | Flash Disk USB Device | GRUMMEL | N:\ | 907 MB
(ohne die Striche)
[Edit Biber als Code Formatiert.]
[/Edit Biber als Code Formatiert}.
Jetzt meine Frage, wie kann ich die Device-ID auslesen (hier im Beispiel brauche ich als erstes die Nr. "2448" und als nächstes die "2576" und als Variable nutzen?
Diese Nummern ändern sich natürlich mit jedem Stick, und ich weiß auch nicht, ob ich nur einen Stick habe, oder 10 Stück.
Diese Nummer brauche ich, damit ich das Programm im neuem Fenster starten kann, also z.B.
start programm.exe [device]
wobei [device] dann die variable wäre.
Super wäre es auch noch, wenn ich als 2.te Variable den Laufwerksbuchstaben erfassen könnte, dann kann ich den Stick per Software entfernen lassen (USB-Hardware sicher entfernen - gibts als Komandozeilenbefehl, aber der brauch den Buchstaben)
Wie komme ich an diese "Device-ID" dran, und wie muss dann die FOR - Schleife aussehen.
Hoffe, ich habe mich nicht zu kompliziert ausgedrückt.
Vielen Dank
Frank
erst einmal vielen Dank für die vielen guten Tipps, die ich hier schon gefunden habe.
Jetzt komme ich aber nicht weiter.
Das Programm USB Image Tool erstellt Images von USB-Sticks und kann auch diese Image zurückschreiben. Aber immer nur auf einen USB-Stick.
Meine Idee war es jetzt, mit einem Batch einfach ein paar CMD Fenster aufzurufen, und dann auf mehrere Sticks das Image kopieren (zu Fuß geht das).
Leider benötigt das Programm in der Kommandozeile nicht den Laufwerksbuchsten, sondern eine Device-ID.
Diese läßt sich auch auslesen und im CMD-Fenster anzeigen oder ggf. in eine TXT Datei umleiten.
Das sieht dann so aus:
(ohne die Striche)
"Leerzeile"
USB Image Tool 1.57
COPYRIGHT 2006-2010 Alexander Beug
http://www.alexpage.de
"Leerzeile"
Device | Friendly Name | Volume Name | Volume Path | Size
------------------------------------------------------------------------------
2448 | Flash Disk USB Device | GRUMMEL | M:\ | 907 MB
2576 | Flash Disk USB Device | GRUMMEL | N:\ | 907 MB
(ohne die Striche)
[Edit Biber als Code Formatiert.]
USB Image Tool 1.57
COPYRIGHT 2006-2010 Alexander Beug
http://www.alexpage.de
Device | Friendly Name | Volume Name | Volume Path | Size
------------------------------------------------------------------------------
2448 | Flash Disk USB Device | GRUMMEL | M:\ | 907 MB
2576 | Flash Disk USB Device | GRUMMEL | N:\ | 907 MB
Jetzt meine Frage, wie kann ich die Device-ID auslesen (hier im Beispiel brauche ich als erstes die Nr. "2448" und als nächstes die "2576" und als Variable nutzen?
Diese Nummern ändern sich natürlich mit jedem Stick, und ich weiß auch nicht, ob ich nur einen Stick habe, oder 10 Stück.
Diese Nummer brauche ich, damit ich das Programm im neuem Fenster starten kann, also z.B.
start programm.exe [device]
wobei [device] dann die variable wäre.
Super wäre es auch noch, wenn ich als 2.te Variable den Laufwerksbuchstaben erfassen könnte, dann kann ich den Stick per Software entfernen lassen (USB-Hardware sicher entfernen - gibts als Komandozeilenbefehl, aber der brauch den Buchstaben)
Wie komme ich an diese "Device-ID" dran, und wie muss dann die FOR - Schleife aussehen.
Hoffe, ich habe mich nicht zu kompliziert ausgedrückt.
Vielen Dank
Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161463
Url: https://administrator.de/contentid/161463
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo kaeptenblei und willkommen im Forum!
Schematisch (unter der Annahme, dass als Erkennungskriterium der relevanten Zeilen "Flash Disk USB Device" dienen kann) sähe das etwa so aus:
Alternative für Zeile 4:
- damit würden einfach nur die ersten 7 Zeilen übersprungen und alle folgenden Zeilen ausgewertet.
Es ist übrigens nicht nötig, eine Datei für die Daten der USB-Sticks zu erstellen:
Grüße
bastla
Schematisch (unter der Annahme, dass als Erkennungskriterium der relevanten Zeilen "Flash Disk USB Device" dienen kann) sähe das etwa so aus:
@echo off & setlocal
set "Datei=D:\Devices.txt"
for /f "tokens=1,4 delims=|" %%i in ('findstr /c:"Flash Disk USB Device" "%Datei%"') do (
echo start programm.exe %%i
echo Entferne LW %%j
)
for /f "usebackq skip=7 tokens=1,4 delims=|" %%i in ("%Datei%") do (
Es ist übrigens nicht nötig, eine Datei für die Daten der USB-Sticks zu erstellen:
for /f "skip=7 tokens=1,4 delims=|" %%i in ('C:\Tools\usbitcmd l') do (
bastla
moin kaeptenblei,
als delimiter kannst Du in der Forschleife hinter delims=| einen Backslash anfügen.
Gruß Phil
Kann ich z.b. "tokens 1,4" dazu bringen, dass an der 4.ten Stelle nur die ersten 2 Zeichen als Variable gesetzt werden?
es würde ja reichen wenn der Backslash entfernt wird.als delimiter kannst Du in der Forschleife hinter delims=| einen Backslash anfügen.
for /f "skip=7 tokens=1,4 delims=|\" %%i in ('C:\Tools\usbitcmd l') do (
Gruß Phil