Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch Pingliste mit Log File

Frage Entwicklung Batch & Shell

Mitglied: Mini25

Mini25 (Level 1) - Jetzt verbinden

20.03.2009, aktualisiert 12:00 Uhr, 4803 Aufrufe, 4 Kommentare

Hallo Leute!

Ich möchte gerne PC-Namen aus einem Textfile pingen. Ist der Ping erfolgreich, so soll in der Log Datei ein Eintrag erscheinen.

Bsp: PC12345 Ping erfolgreich


Hat der Ping nicht funktioniert, so soll kein eintrag in die Log-Datei geschrieben werden.

Bisher bin ich so weit gekommen:

01.
for /f %%i in (C:\hostnames.txt) do ( 
02.
alive /Repeat=8 /Timeout=3 %%i  
03.
if %ERRORLEVEL% == 0 Goto error 
04.
if not %ERRORLEVEL% == 0 goto erfolg 
05.
:erfolg 
06.
echo %%i ping erfolgreich >> hallo.log goto ende 
07.
:error 
08.
echo fehler >> hallo.log goto ende 
09.
:ende 
10.
)
Mfg
Mini25




[Edit Biber] Code als Code formatiert und Beitrag nach Batch & Shell verschoben. [/Edit]
Mitglied: bastla
20.03.2009 um 14:03 Uhr
Hallo Mini25!

Wenn nur bei Erfolg (=Errorlevel ungleich 0) ein Eintrag ins Log vorgenommen werden soll, könnte Folgendes reichen:
01.
for /f %%i in (C:\hostnames.txt) do alive /Repeat=8 /Timeout=3 %%i || echo %%i ping erfolgreich>>hallo.log
Ansonsten sollte es auch so gehen:
01.
for /f %%i in (C:\hostnames.txt) do ( 
02.
    alive /Repeat=8 /Timeout=3 %%i  
03.
    if ERRORLEVEL 1 goto :erfolg 
04.
    echo fehler >> hallo.log & goto :ende 
05.
    :erfolg 
06.
    echo %%i ping erfolgreich >> hallo.log goto ende 
07.
    :ende 
08.
)
Grüße
bastla
Bitte warten ..
Mitglied: Mini25
20.03.2009 um 15:12 Uhr
Hallo bastla!

Ich habe keine Ahnung wiesos nicht geht.

im Moment sieht mein Code so aus:

01.
@echo off 
02.
for /f %%i in (C:\hostnames.txt) do (  
03.
 
04.
set pcn=%%i 
05.
 
06.
alive /Repeat=5 /Timeout=1 %%i   
07.
 
08.
if Errorlevel 0 goto erfolg  
09.
echo fehler >> hallo.log 
10.
goto ende 
11.
 
12.
:erfolg  
13.
echo %pcn% ping erfolgreich >> hallo.log  
14.
goto ende  
15.
 
16.
:ende  
17.
echo fehler 
18.
)
Allerdings nimmt er da immer nur den ersten Wert aus der Liste. Die Schleife funktioniert noch nicht so richtig. Wenn bei

:ende nix mehr steht, so kommt ein Syntaxfehler


Ich wäre froh wenn ihr mir da etwas weiter helfen könnt.

Mfg
Mini25
Bitte warten ..
Mitglied: bastla
20.03.2009 um 16:13 Uhr
Hallo Mini25!

Oben hattest Du noch Errorlevel 1 für den Erfolgsfall ...

Ein "if errorlevel 0" ist sinnlos, da immer zutreffend - die Abfrage bedeutet nämlich "if errorlevel >=0"; daher eher so:
01.
@echo off & setlocal 
02.
for /f %%i in (C:\hostnames.txt) do (  
03.
    alive /Repeat=5 /Timeout=1 %%i   
04.
    if Errorlevel 1 (echo fehler >> hallo.log) else (echo %%i ping erfolgreich >> hallo.log) 
05.
)
Alternativ dazu kannst Du die Zeilen 3 und 4 zusammenfassen zu
alive /Repeat=5 /Timeout=1 %%i || (echo fehler >> hallo.log) && (echo %%i ping erfolgreich >> hallo.log)
Grüße
bastla
Bitte warten ..
Mitglied: 60730
20.03.2009 um 16:14 Uhr
Servus,

leicht OT:
"alive" - bist du Kiss fan ? - bzw. welches Tool benutzt du denn?
"mini25" - wenn nicht kiss fan, dann Fan einer kleinen Kiste mit 12" Rädern?

Anyway - poste mal einen Schnippsel deiner C:\hostnames.txt - vielleicht liegt da der Hund begraben.


gruß
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst ( Batch ) Open File or Folder Dialog (5)

Frage von clragon zum Thema Batch & Shell ...

Windows 10
Batch: Copy file.txt Lokaler Drucker (1)

Frage von fluluk zum Thema Windows 10 ...

Batch & Shell
"Generic" Drucker mit batch - File erstellen (6)

Frage von MrPreesident zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...