Frage von KingTamino, 27

cmd/batch - Hilfe beim erstellen eines Skriptes?

Moin. Hoffe jemand mit Kenntnissen kann mir da weiterhelfen.

Ich möchte mir, da ich regelmäßig per cmd-Konsole Daten von verschiedenen Servern abfragen muss eine batch-Datei erstellen, welche die Namen annimmt (optimalerweise aus einem .txt ausliest.

Also 1 Name pro Zeile und dann ein Kommando ausführt. Sagen wir z.B. ein "Ping". Dies soll dann in eine andere .txt gespeichert werden.


Wie das schreiben in eine .txt funktioniert, weiß ich:

ping ServerXY >> Ergebnis.txt

oder halt so:

( ping Server1 ping Server2 ping Server3 ) >> Ergebnisse.txt


Das aulesen von Namen sollte doch mittels Variablen möglich sein oder? Also eine Schleife, die 3 Schritte immer wiederholt bis eine leere Zeile vorkommt

1) Namen nehmen und in Variable speichern

2) CMD Kommando Variable >> XY.txt

3) Zurück auf Anfang


Also ich fasse nochmal zusammen:

Ich möchte eine batch Datei erstellen die folgendes macht:

  1. Namen/Bezeichnungen aus einer Datei nimmt (z.B. Names.txt)
  2. Ein cmd Kommando mit den Namen ausführt (z.B. Ping NameAusZeile1)
  3. Das Ergebnis in eine .txt schreibt (Funktioniert via ">> Ziel.txt")

Kann mir wer da weiterhelfen? Wenn wer will, über ein fertiges Skript würd ich mich freuen aber auch Tipps, welche Befehle ich nachschlagen soll wären hilfreich. Oder falls ihr wisst, dass das alles überhaupt nicht funktioniert => Raus damit.

Und bitte... spart euch einzeilige Antworten/Verlinkungen auf google.

Mir ein "CMD for Dummies" Buch anzuschaffen, die idee krieg ich auch alleine. Aber für ein einziges Skript lohnt das nicht...

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von AnonYmus19941, 14

Wir würden uns ja Verlinkungen auf Google sparen, aber ich habe nach "batch datei einlesen" gesucht und die ersten Ergebnisse sollten eigentlich alle für dich passen.

Wenn du nur die erste Zeile einlesen willst, dann kannst du einfach das Kleiner-als-Zeichen ("<") verwenden (z. B. "set /p server=<liste.txt"; hierbei wird eine Benutzereingabe simuliert). Ansonsten sind hier zwei der Links, die ich gefunden habe:

Damit solltest du das hinbekommen...

Hier jetzt noch das gesamte Skript:

@echo off
FOR /F %%i in (server.txt) do (
ping %%i>>antworten.txt
)
Kommentar von KingTamino ,

😂😂 Gut gesprochen, gut gesprochen.
Ich ziehe meinen Hut vor dir.
Werde mich morgen mal dran versuchen. Danke für die ausführliche Antwort.

Selbst wenn jetzt noch ne andere Antwort kommen sollte, die "Beste Antwort" ist dir sicher 😭(naja höchstwarscheinlich)

Antwort
von ilfascismo, 5

Nimm doch einfach Powershell du Eumel ... omg, einmal mit Profis arbeiten xD xD xD xD xD

Keine passende Antwort gefunden?

Fragen Sie die Community