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, 1543 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
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server
Freenas schlechte Schreib Performance bei NFS (15)

Frage von janosch12 zum Thema Server ...

Windows Update
gelöst WSUS Produkte weiter einschränken (11)

Frage von thaefliger zum Thema Windows Update ...

Windows Server
Fehler Vertrauensstellung im AD (10)

Frage von thomas-99 zum Thema Windows Server ...