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, 1525 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Server
Dynamics CRM 2016-APP gibt HTTP Error zurück

Frage von Lagoles zum Thema Windows Server ...

DNS
Nslookup gibt falschen DNS Namen zurück (3)

Frage von ultrapottoti zum Thema DNS ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...