Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per Batch aus einer textdatei ip addresse in cmd befehl kopieren

Frage Entwicklung Batch & Shell

Mitglied: vanitas

vanitas (Level 1) - Jetzt verbinden

29.01.2008, aktualisiert 30.01.2008, 8749 Aufrufe, 9 Kommentare

Hallo an Alle ..
Bin neu dazugestoßen und finde euer board richtig gut vorallem von den Lösungstipps / Lösungen.

Mein Frage / Problem:

Ich möchte aus einer vorhandenen Textdatei (das foolgendermaßen in etwa aussieht) :

blaaaaaa 192.168.1.1 blaaaaaaa
blaaaaaa 192.168.34.5 blaaaaaa
blaaaaaa 192.168.22.1 blaaaaaa

hier soll nun mit Hilfe einer .bat als erstes für die IP in der ersten Zeile eine Variabel gesetzt werden,
dann für die 2. und dann für die 3. (wenn das nicht funktioniert mit den Zeilen dann könnte er auch
automatisch die zeile löschen deren ip er schon kopiert hat)
Wenn er keine IP mehr findet soll er die IP aus der ersten Zeile in einen CMD Befehl kopieren

z.B.

ping IP 1
ping IP 2
ping IP 3

das ergebnis soll er dann in eine andere text datei speichern

und noch ein Frage ist es möglich in eine batch datei eine zeitliche verzögerung bis zum nächten befehl einzubauen
in etwa 1 min. oder sowas?


mfg Vanitas
Mitglied: bastla
29.01.2008 um 16:49 Uhr
Hallo vanitas und willkommen im Forum!

Was Dir vorschwebt ist zwar auch machbar, aber in Batch wäre der Ablauf einfacher so:

Lies IP aus erster Zeile, führe Befehl für IP aus, Pause,
lies IP aus nächster Zeile, führe Befehl für IP aus, Pause,
...
01.
@echo off & setlocal 
02.
set "IPListe=D:\DeineTextDatei.txt" 
03.
set "Ergebnis=D:\Pings.txt" 
04.
 
05.
if exist "%Ergebnis%" del "%Ergebnis%" 
06.
for /f "usebackq tokens=2" %%i in ("%IPListe%") do call :ProcessIP %%i 
07.
goto :eof 
08.
 
09.
:ProcessIP 
10.
ping %1 >>"%Ergebnis%" 
11.
ping -n 60 localhost>nul
Das Auslesen funktioniert mit dem obigen Code nur, wenn in Deiner Datei tatsächlich das erste Leerzeichen in der Zeile unmittelbar vor und das zweite Leerzeichen unmittelbar nach der IP-Adresse steht - anderenfalls müsstest Du angeben, wo sich die IP-Adresse in der Zeile befindet (Position) / nach welchem Kriterium sie zu finden ist.

das ergebnis soll er dann in eine andere text datei speichern
"Ergebnis" wäre noch näher zu definieren - vermutlich meinst Du damit "erreichbar" oder "nicht erreichbar", wofür sich etwa folgende "ping"-Zeile ergäbe:
01.
ping %1|findstr /c:"(100% Verlust)">nul && (echo %1 - offline>>"%Ergebnis%") || echo %1 - online>>"%Ergebnis%"
Zusätzliche Parameter (zB "-n" oder "-w") für den "ping" kannst Du ja noch ergänzen ...
Eine Pause lässt sich, wie im Beispiel oben gezeigt, ebenfalls durch einen "ping" realisieren - alternativ dazu gibt es etwa "sleep.exe" oder andere externe Tools.


Grüße
bastla
Bitte warten ..
Mitglied: vanitas
29.01.2008 um 17:36 Uhr
ok danke erstmal für deine Hilfe
hatte nicht gedacht das das so komplex ist
die .txt datei war nur ein Beispiel, dachte du könntest die IP Adresse evtl. über *.*.*.* suchen oder so..
wenn das nicht ginge dann ist die textdatei folgendermaßen aufgebaut:
192.168.2.44:
192.168.3.22:
192.168.23.21:

das bedeutet die IP steht am Anfang der Zeile und ist mit einem Doppelpunkt von dem rest der zeile getrennt..
der befehl "ping" war eigentlich auch nur ein beispiel
gibt es da eine Möglichkeit das er der gefundenen IP eine Variabel zuweist, die ich dann im CMD Befehl nur an die nötige stelle setzen muss? zb.

"der Suchvorgang nach den verschiedenen IPs"
programm.exe IP Adresse1 >>"%Ergebnis%"
programm.exe IP Adresse2 >>"%Ergebnis%"



Danke und mit freundlichen Gruß!
Bitte warten ..
Mitglied: bastla
29.01.2008 um 17:53 Uhr
Hallo vanitas!

... der gefundenen IP eine Variabel zuweist, die ich dann im CMD Befehl nur an die nötige stelle setzen muss?
Diese Variable ist "%1" im Unterprogramm ":ProcessIP" - zusammen mit der geänderten Textdatei sähe das so aus:
01.
@echo off & setlocal 
02.
set "IPListe=D:\DeineTextDatei.txt" 
03.
set "Ergebnis=D:\Pings.txt" 
04.
 
05.
if exist "%Ergebnis%" del "%Ergebnis%" 
06.
for /f "usebackq delims=:" %%i in ("%IPListe%") do call :ProcessIP %%i 
07.
goto :eof 
08.
 
09.
:ProcessIP 
10.
programm.exe %1 >>"%Ergebnis%" 
11.
ping -n 60 localhost>nul
Soferne Du die Ergebnisdatei mit der Zeile "der Suchvorgang nach den verschiedenen IPs" beginnen willst, könntest Du die "if exist ..."-Zeile durch folgende ersetzen:
01.
echo der Suchvorgang nach den verschiedenen IPs>"%Ergebnis%"
Durch die Verwendung eines einzelnen ">" wird eine ev schon bestehende Datei überschrieben (mit ">>" wird die Zeile am Ende der Datei angefügt).

Grüße
bastla
Bitte warten ..
Mitglied: vanitas
29.01.2008 um 18:21 Uhr
sehr schön ..
noch eine frage ..
ist das nun nur ein Vorgang für die 1. Zeile und damit für die erste IP oder wiederholt er automatisch diesen Vorgang bis er keine IP mehr findet und führt dann die Befehle aus?
dann müsste er ja eigentlich verschieden Variablen haben oder?

Die batch soll automatisch solange nach IPs suchen bis er keine mehr finden kann und dann die befehle ausführen oder macht er das in deiner version zwischendrin?
Bitte warten ..
Mitglied: bastla
29.01.2008 um 18:25 Uhr
Hallo vanitas!

Wie schon oben beschrieben, wird sofort nach dem Auslsesen die IP (im Unterprogramm) verarbeitet (also "zwischendrin" ). Gelesen werden alle Zeilen der Textdatei, wobei vorausgesetzt wird, dass auch jede Zeile mit einer IP beginnt.

Grüße
bastla
Bitte warten ..
Mitglied: vanitas
29.01.2008 um 21:05 Uhr
noch eine letzte frage (=

wenn er jetzt in dem .txt file keine IP findet ... dann funktioniert das ganze ja nicht das bedeutet er erstellt kein "Ergebnis" und führt auch die befehle dannach nicht mehr aus...

wie kann man das umgehen?
bzw. kann man ihm sagen das er dann einfach den nächsten befehl ausführen soll?

danke dir!
Bitte warten ..
Mitglied: bastla
29.01.2008 um 21:21 Uhr
Hallo vanitas!

wenn er jetzt in dem .txt file keine IP findet
Dem würde ich vorbeugen, indem dann gar keine Textdatei vorhanden wäre, was sich mit einem
01.
if not exist "%IPListe%" goto :Weiter 
02.
if exist "%Ergebnis%" del "%Ergebnis%" 
03.
for /f "usebackq delims=:" %%i in ("%IPListe%") do call :ProcessIP %%i 
04.
:Weiter 
05.
:: hier weitere Befehle 
06.
:: 
07.
:: und jetzt ist Ende 
08.
goto :eof 
09.
 
10.
:ProcessIP 
11.
programm.exe %1 >>"%Ergebnis%" 
12.
ping -n 60 localhost>nul
Soferne allerdings die Textdatei doch vorhanden, aber leer ist, wird einfach das Unterprogramm durch die "for"-Schleife nicht aufgerufen - was zum gleichen Ergebnis führt.

Nicht erkennen kann der Batch in dieser Version, wenn die Textdatei zwar irgendwelchen Text, aber keine IP-Adresse enthält - es wird stur der erste Teil einer Zeile bis zum ":" oder, wenn es keinen ":" gibt, die gesamte Zeile, als IP interpretiert.

kann man ihm sagen das er dann einfach den nächsten befehl ausführen soll?
Musst Du nicht - der wird nach der "for"-Schleife ohnehin ausgeführt ...

Grüße
bastla
Bitte warten ..
Mitglied: vanitas
30.01.2008 um 18:42 Uhr
hm danke dir !!

noch ne kleine Frage ..

wie kann ich eine unendlos schleife einbauen so das sich die bat immer wieder von alleine startet ..
ohne das sich das irgendwann aufhängt und abbricht.

gibs irgendwelche optionen die ich in den code, ohne die option, das die ipliste leer is einbauen könnte damit er wenn er evtl. mal n fehler macht einfach diesen umgeht und neustartet die bat?

mfg
Bitte warten ..
Mitglied: Biber
30.01.2008 um 19:16 Uhr
wie kann ich eine unendlos schleife einbauen ...
Das sprengt mein räumliches Vorstellungsvermögen....
so das sich die bat immer wieder von alleine startet ..
Google mal nach "perpetuum bätchele"
ohne das sich das irgendwann aufhängt und abbricht.
Dann wechsele auf ein Unix-System...

  • Du kannst überall dort, wo der Batch aufhört oder ein "goto :eof" außerhalb einer Unterroutine steht, ein "goto :start" einfügen.
Und in die erste Zeile nach "@echo off & setlocal" und den Kommentarzeilen diese Sprungmarke reinklimpern..
:start

Aber for WTF werden denn heute noch Batches nachgefragt, die 365x7x24 laufen und rumpingen??

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Windows Installation
CMD-Batch Programmstart Befehle
Frage von timsen96Windows Installation1 Kommentar

Schönen guten Tag zusammen, ich möchte gerne über eine cmd oder batch datei ein Programm oder Installation öffnen und ...

Batch & Shell
IP-Adresse in Batch, CMD
gelöst Frage von MaxophoniBatch & Shell12 Kommentare

Hallo, ich möchte in einer Batch-Datei eine Variable einfügen, die nur die IP-Adresse anzeigt. Dies funktioniert mittels ipconfig, doch ...

Batch & Shell
PowerShell IP-Address Array
gelöst Frage von CaptainRubikBatch & Shell2 Kommentare

Hallo liebes Forum, ich bin blutiger Anfänger in Sachen PowerShell Scripting und gerade am verzweifeln: Es geht darum, dass ...

VB for Applications
Shell-CMD Befehl Ausführen
gelöst Frage von Timo0oVB for Applications2 Kommentare

Nochmal ich^^ Ich möchte eine Aufgabe mit meinem VB Programm erstellen. Jedoch komme ich nicht weiter. Folgenden Code habe ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 2 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 3 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 10 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server12 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...