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, 1581 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
Batch & Shell
gelöst Seltsames Verhalten bei Errorlevel abfrage in FOR DO Schleife (1)

Frage von Kalma73 zum Thema Batch & Shell ...

Batch & Shell
Batch kehrt zur Sprungmarke zurück, obwohl es pingen soll? (2)

Frage von Brotkasten zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...