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

Mitglied: vanitas

vanitas (Level 1) - Jetzt verbinden

29.01.2008, aktualisiert 30.01.2008, 8814 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
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 ...

Batch & Shell
CMD Hostname Befehl gesucht
gelöst Frage von TobiasedBatch & Shell4 Kommentare

Hallo Community, wie aus dem Titel schon hervorgeht suche ich einen cmd Befehl mit dem es möglich ist den ...

Server

Route-Befehl Unterstützung (unter CMD)

gelöst Frage von FKRR56Server38 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 2 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 2 TagenSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 3 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 3 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Router & Routing
Lancom-VPN-Client
Frage von FM28880Router & Routing15 Kommentare

Hallo zusammen, ich habe heute zwei Rechner mit einem Lancom VPN-Client eingerichtet. Die VPN-Verbindung wird aufgebaut und steht. Jedoch ...

Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V13 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server12 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS12 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...