Batch Programmieren - Daten auslesen
Hallo
ich möchte eine Batch Datei schreiben, in der ich eine Eingabe mache, z.B. PC01
und nun habe ich eine txt Datei mit folgendem Inhalt:
PC01 aa-aa-aa-aa-aa-aa 192.168.1.1
PC02 bb-bb-bb-bb-bb-bb 192.168.1.2
Ist es möglich, dass ich die Eingabe in der BAT Datei mit dieser txt Datei abgleiche, sodass das Programm zum PC01 geht und zusätzlich die anderen Werte (Mac Adresse + IP Adresse) einer Variable zugeordnet wird.
// Es geht um ein einfaches Wake On Lan Tool ( wake.exe )
mfg
MrVain
ich möchte eine Batch Datei schreiben, in der ich eine Eingabe mache, z.B. PC01
und nun habe ich eine txt Datei mit folgendem Inhalt:
PC01 aa-aa-aa-aa-aa-aa 192.168.1.1
PC02 bb-bb-bb-bb-bb-bb 192.168.1.2
Ist es möglich, dass ich die Eingabe in der BAT Datei mit dieser txt Datei abgleiche, sodass das Programm zum PC01 geht und zusätzlich die anderen Werte (Mac Adresse + IP Adresse) einer Variable zugeordnet wird.
// Es geht um ein einfaches Wake On Lan Tool ( wake.exe )
mfg
MrVain
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 84916
Url: https://administrator.de/contentid/84916
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
Moin MrVain,
willkommen im Forum.
Welchen Strategie hast Du denn gewählt, um von Status A ("ich möchte eine Batchdatei schreiben") nach Status B ("ich habe fertig") zu gelangen?
Falls Du Dich mit dem Thema soweit auseinandersetzen willst, dass Du zumindest eine zweite Batchdatei allein hinbekommst, wäre meine Empfehlung:
Wechsele zum CMD-Prompt, gib dort nacheinander ein
...und lese Dir die Erläuterungen zu den Teilbefehlen "Set /P" und "For /F" durch.
Zu beiden findest Du auch (ohne Übertreibung) Hunderte von Beispielschnipseln hier im Bereich Batch & Shell.
Versuche bitte zuerst, eine lauffähige Skizze dieses Batchablaufs zu erstellen und hier zu posten.
Sollte es dann klemmen, unterstützen wir gern.
Grüße
Biber
[Edit um 20.15] Na, jezz' hab ich ihn verschreckt...sorry.
Also kleine Skizze / Test am CMD-Prompt:
[/Edit]
willkommen im Forum.
ich möchte eine Batch Datei schreiben, in der ich eine Eingabe mache, z.B. PC01
Welchen Strategie hast Du denn gewählt, um von Status A ("ich möchte eine Batchdatei schreiben") nach Status B ("ich habe fertig") zu gelangen?
Falls Du Dich mit dem Thema soweit auseinandersetzen willst, dass Du zumindest eine zweite Batchdatei allein hinbekommst, wäre meine Empfehlung:
Wechsele zum CMD-Prompt, gib dort nacheinander ein
Set /?
For /?
Zu beiden findest Du auch (ohne Übertreibung) Hunderte von Beispielschnipseln hier im Bereich Batch & Shell.
Versuche bitte zuerst, eine lauffähige Skizze dieses Batchablaufs zu erstellen und hier zu posten.
Sollte es dann klemmen, unterstützen wir gern.
Grüße
Biber
[Edit um 20.15] Na, jezz' hab ich ihn verschreckt...sorry.
Also kleine Skizze / Test am CMD-Prompt:
>Set /P "pc=Bitte Rechnernamen eingeben: "
>for /f "tokens=1-3" %i in (Rechnerliste.txt) do @if /i "%pc%"=="%i" echo Set "PC=%i Set" "MAC=%j" Set "IP=%k"
Moin MrVain,
vom CMD-Prompt aus solte es wie gepostet funktionieren, wenn die Datei "Rechnerliste.txt" so aussieht wie von Dir oben skizziert.
Nochmal zum Testen und nachturnen am CM-Prompt:
In einem Batch müssten alle %-Zeichen verdoppelt werden, also ungefähr so:
Wenn auch dieser Vorab-Test das Gewünschte zeigt, dann die echo's entfernen.
Grüße
Biber
vom CMD-Prompt aus solte es wie gepostet funktionieren, wenn die Datei "Rechnerliste.txt" so aussieht wie von Dir oben skizziert.
Nochmal zum Testen und nachturnen am CM-Prompt:
echo PC01 aa-aa-aa-aa-aa-aa 192.168.1.1>Rechnerliste.txt
>echo PC02 bb-bb-bb-bb-bb-bb 192.168.1.2>>Rechnerliste.txt
>set PC=PC02
>for /f "tokens=1-3" %i in (Rechnerliste.txt) do @if /i "%pc%"=="%i" echo Set "PC=%i" Set "MAC=%j" Set "IP=%k"
Set "PC=PC02" Set "MAC=bb-bb-bb-bb-bb-bb" Set "IP=192.168.1.2"
In einem Batch müssten alle %-Zeichen verdoppelt werden, also ungefähr so:
....
for /f "tokens=1-3" %%i in (Rechnerliste.txt) do if /i "%%pc%"=="%%i" (
echo Set "PC=%%i"
echo Set "MAC=%%j"
echo Set "IP=%%k"
)
Grüße
Biber