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
GELÖST

Ping gibt errorlevel 0 zurück obwohl nicht erfolgreich

Frage Entwicklung Batch & Shell

Mitglied: Invisan

Invisan (Level 1) - Jetzt verbinden

05.02.2014, aktualisiert 13:36 Uhr, 1569 Aufrufe, 4 Kommentare, 2 Danke

Hallo zusammen,

ich habe mal wieder ein kleines Problem.
Ich habe mir eine kleine Bat geschrieben die Rechner im Netzwerk aufgrund einer Liste anpingen und sollte der Ping erfolgreich sein
den RemoteRegistry Dienst starten und eine Abfrage an den Client richten soll.

Dies funktioniert auch solange alle Clients an sind. Ist jetzt aber einer der Clients nicht an bleibt das Skript stehen warum auch immer...


Hier der Code


01.
@echo off & setlocal 
02.
for /F "tokens=1* delims=:" %%a in ('findstr /n "^" "D:\liste.txt"') do ( 
03.
    ping -n 1 %%b > find.txt 
04.
    echo %ERRORLEVEL% 
05.
    find "TTL=" find.txt > nul 
06.
    echo %ERRORLEVEL% 
07.
    if %ERRORLEVEL% EQU 1 goto next 
08.
 
09.
    sc \\%%b start RemoteRegistry 
10.
    >>D:\test.txt echo . 
11.
    >>D:\test.txt echo                           %%b 
12.
    >>D:\test.txt echo . 
13.
    >>D:\test.txt echo . 
14.
    >>D:\test.txt echo ========2008=========== 
15.
    >"%temp%\Prod.txt" reg query "\\%%b\HKLM\SOFTWARE\Autodesk\AutoCAD LT\R13\ACADLT-6001:407" /v SerialNumber 
16.
    >>"%temp%\Prod.txt" echo =========================================================== 
17.
    >>D:\test.txt echo . 
18.
    >>D:\test.txt type "%temp%\Prod.txt" 
19.
    sc \\%%b stop RemoteRegistry 
20.
    >>D:\test.txt echo( 
21.
     
22.
    :next 
23.
    set /a L=%%a 
24.
)

Das interessante dabei ist. Wenn ich den find Befehl in einer cmd ausführe mit dem Wissen er findet nichts in der TXT gibt er mir korrekt errorlevel 1 zurück.
Mit dem Skript bleibt er immer bei errorlevel 0...
Mitglied: bastla
LÖSUNG 05.02.2014, aktualisiert um 15:10 Uhr
Hallo Invisan!

Verwende einfach die Abfrage auf "TTL" (hast Du ja ohnehin schon in Deinem Batch) - etwa so:
ping -n 1 %%b|find "TTL">nul||goto :next
Grüße
bastla
Bitte warten ..
Mitglied: Invisan
05.02.2014 um 14:07 Uhr
Zitat von bastla:

Hallo Invisan!

Verwende einfach die Abfrage auf "TTL" (hast Du ja ohnehin schon in Deinem Batch) - etwa so:
ping -n 1 %%b|find "TTL">nul||goto :next 
> 
Grüße
bastla


Hi bastla,

danke für deine wie immer super schnelle Antwort.

Leider funktioniert es aber immer noch nicht richtig. Irgendwo anders muss noch ein fehler sein.
Das Skript läuft leider nachdem der erste Rechner nicht mehr Pingbar ist in den Exit und beendet sich.

Der derzeitig Aufbau sieht so aus.


01.
@echo off & setlocal 
02.
for /F "tokens=1* delims=:" %%a in ('findstr /n "^" "D:\liste.txt"') do ( 
03.
    :start 
04.
    ping -n 1 %%b|find "TTL">nul||goto :next 
05.
    echo %ERRORLEVEL% 
06.
 
07.
    sc \\%%b start RemoteRegistry 
08.
    >>D:\test.txt echo . 
09.
    >>D:\test.txt echo                           %%b 
10.
    >>D:\test.txt echo . 
11.
    >>D:\test.txt echo . 
12.
    >>D:\test.txt echo ========2008=========== 
13.
    >"%temp%\Prod.txt" reg query "\\%%b\HKLM\SOFTWARE\Autodesk\AutoCAD LT\R13\ACADLT-6001:407" /v SerialNumber 
14.
    >>"%temp%\Prod.txt" echo =========================================================== 
15.
    >>D:\test.txt echo . 
16.
    >>D:\test.txt type "%temp%\Prod.txt" 
17.
    sc \\%%b stop RemoteRegistry 
18.
    >>D:\test.txt echo( 
19.
     
20.
     
21.
    :next 
22.
    set /a L=%%a 
23.
    goto start 
24.
)
Ich habe daher nocheinmal :start und goto start hinzugefügt

Er geht zwar zurück zu start gibt mir dann aber zurück Fehlender Opperand.


Mit freundlichen Grüßen,

Invisan
Bitte warten ..
Mitglied: Endoro
LÖSUNG 05.02.2014, aktualisiert um 15:10 Uhr
Hey,

innerhalb eines Code Blocks kann auf veränderte %variable% nicht zugegriffen werden. In diesen Fällen benötigst du delayed expansion und !variable!, also !ERRORLEVEL! statt %ERRORLEVEL%.
Gruss.
Bitte warten ..
Mitglied: Invisan
05.02.2014 um 15:09 Uhr
Zitat von Endoro:

Hey,

innerhalb eines Code Blocks kann auf veränderte %variable% nicht zugegriffen werden. In diesen Fällen benötigst
du delayed expansion und !variable!, also !ERRORLEVEL! statt %ERRORLEVEL%.
Gruss.

Super danke dir Endoro damit klappt es
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...