Top-Themen

Aktuelle Themen (A bis Z)

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 unterschiedliche errrorlevel mit ping

Mitglied: Danick

Danick (Level 1) - Jetzt verbinden

05.07.2007, aktualisiert 06.07.2007, 4108 Aufrufe, 7 Kommentare

Ein herzliches Hallo(bin noch neu),

folgender Fall:
ich hab eine Datei(pcliste.txt) die ich für eine Pingabfrage benutze um zu sehen ob der entsprechende PC noch da ist.
Anhand des %ERRORLEVEL% wird dann die weitere Verarbeitung gesteuert.

Die erste Abfrage schaut wie folgt aus:
01.
for /f "tokens=1,2,3,4 delims= " %%i in ('findstr +%pc%+ pcliste.txt') do  ping -n 1 -w 5 %%l >nul
funktioniert wunderbar!

Mit dem zweiten ping will ich aber nicht gezielt einen PC auschalten sondern alle in der Datei pcliste.txt:
01.
for /f "tokens=1,2,3,4 delims= " %%a in (pcliste.txt) do ( 
02.
	echo prüfe ob der PC "%%b" online ist: 
03.
	ping -n 1 -w 5 %%d >nul 
04.
	if %errorlevel%==0 (shutdown -s -t 120 -m \%%b) else echo "der PC "%%b" "%%d" ist bereits offline!" 
05.
)
dummerweise kommt als errorlevel immer 0 heraus, egal ob der ping erfolgreich war oder nicht.
Was macht mir die for-schleife mit dem errrorlevel?

Dickes Danke im Vorraus
Mitglied: Biber
05.07.2007 um 23:18 Uhr
Moin Danick,

willkommen im Forum.

Suche mal im Forum (oder speziell im Bereich Batch & Shell) nach "DelayedExpansion".
Oder lies in der Hilfe bei Set/Setlocal am CMD-Prompt unter den Stichworten "verzögerte Variablenauflösung/Delayed Expansion" nach, warum eine dynamische Auflösung einer %variablen% innerhalb einer FOR-Anweisung nicht funktioniert.

Mit meinen Worten kurz umrissen:
Für den CMD-Interpreter ist Deine optisch mehrzeilig formatierte FOR-Anweisung eine Anweisung.
In einer Anweisung werden Variablen einmalig aufgelöst. Nicht mehrmals.

Abhilfe:
  • im Normalfall: Mit "Setlocal EnableDelayedExpansion" und der "!variable!"-Schreibweise
  • oder Alternativ: durch Einbauen eines geCALLten SubBlocks und Setzen/Prüfen der %variable% dort
  • Alternative III überspring ich mal - zu abwegig.. CALL und viele Prozentzeichen
  • oder, was in Deinem Fall zu empfehlen ist: Eine Prüfung auf IF [NOT] ERRORLEVEL (Teil der IF-Syntax) statt auf %ERRORLEVEL% (Umgebungsvariable).

Beispiel:
01.
for /f "tokens=1,2,3,4 delims= " %%a in (pcliste.txt) do ( 
02.
echo prüfe ob der PC "%%b" online ist: 
03.
ping -n 1 -w 5 %%d >nul 
04.
if not errorlevel 1 (shutdown -s -t 120 -m \%%b) else echo "der PC "%%b" "%%d" ist bereits offline!" 
05.
)
[ungetestete Skizze]

Grüße
Biber
Bitte warten ..
Mitglied: 50496
05.07.2007 um 23:40 Uhr
Nabend, ich bin auch neu.

Interessieren würde mich einmal, was mit einem bereits ausgeschalteten PC passiert, wenn man versucht, ihn per shutdown auszuschalten.
Bleibt der ausgeschaltet oder geht er kaputt? :D

Ich frage deshalb, weil die if ... else Bedingung m. E. keinerlei Sinn ergibt.
Bitte warten ..
Mitglied: Biber
05.07.2007 um 23:54 Uhr
Na, ernstaugust,

dann lies die Bedingung noch mal in Ruhe.... *gg

Was wird denn geprüft?
Natürlich würde nichts Schlimmes passieren, wenn Du einem nicht erreichbaren Rechner den Befehl zum Shutdown erteilst...

Aber besserer Stil ist es schon, solche Aufforderungen nur an anpingbare Rechner zu stellen.

Auch wenn es nur ein Batch, braucht doch niemand gleich so brachiale Methoden anwenden.
Grundsätzlich streben es die meisten Coder an, Fehler abzufangen/abzuprüfen und nicht einfach Fehler auf IGNORE zu setzen.

Grüße
Biber
Bitte warten ..
Mitglied: 50496
06.07.2007 um 00:05 Uhr
@Biber

Grundsätzlich stimmt das schon, was du anführst. Nur sehe ich immer noch keinen Sinn darin, Klimmzüge zu veranstalten, nur um alle PCs auszuschalten.
Bitte warten ..
Mitglied: Danick
06.07.2007 um 15:53 Uhr
@Biber
Herzlichen Dank Biber, es müßte noch mehr deiner Art geben!
(batche erst seit 3 Tagen)

@50496
dir muss ich auch danken, du hast mich auf eine Idee gebracht.
Warum nur 5 extra Buchstaben, da schreib ich gleich noch 10 dazu und ich bin
zukünftig informiert wer immer seinen PC über Nacht eingeschaltet lässt.
Sind auch ein paar EURO im Jahr.
01.
for /f "tokens=1,2,3,4,5,6  delims= " %%a in (pcliste.txt) do ( 
02.
	ping -n 1 -w 5 %%d >nul 
03.
	if not errorlevel 1 ( 
04.
		set /a counter = %%f + 1 
05.
		echo %%a %%b %%c %%d [ !counter! ]>> pcliste_tmp.txt 
06.
		echo [%%b - %%d] wird ausgeschaltet! 
07.
		shutdown -s -t 120 -m \\%%b	 
08.
09.
	if errorlevel 1 echo %%a %%b %%c %%d [ %%f ]>> pcliste_tmp.txt	 
10.
11.
xcopy /y /q pcliste_tmp.txt pcliste.txt 
12.
del pcliste_tmp.txt
Grüße,
Danick
Bitte warten ..
Mitglied: 50496
06.07.2007 um 17:07 Uhr
@Danick

Man könnte das auch über den Taskplaner lösen, indem man z. B. den Rechner täglich nach Dienstschluss automatisch herunterfahren lässt, falls der User das vergessen haben sollte.
Bitte warten ..
Mitglied: Danick
06.07.2007 um 17:30 Uhr
@50496

ach schmarn, wieso die ganze arbeit?
Ich sags einfach der Putzfrau, die is immer nach Feierabend da und zusätlich könnte sie ja versehentlich geöffnete Dateien speichern.
Bitte warten ..
Ähnliche Inhalte
Server

Ping an eine Domain: Zwei unterschiedliche IPs

Frage von frilooServer2 Kommentare

Hallo, ich habe einen Server der auf Plesk läuft. Dort habe ich den A- und den MX-Record geändert. Mir ...

Firewall

Ping oder nicht Ping?

Erfahrungsbericht von LordGurkeFirewall10 Kommentare

Immer wieder erzählt mir jemand, dass man eine Firewall so konfigurieren soll, dass sie nicht auf ICMP-Echo-Requests ("Ping") antworten ...

Windows Server

Unterschiedliche DNS Einträge an unterschiedlichen Standorten

gelöst Frage von conym18Windows Server7 Kommentare

Guten Morgen, wir haben Domäne mit 5 Standorten. Am Standort A steht der Haupt DC und die anderen Standorte ...

Windows Netzwerk

Unterschiedliche Uploadgeschwindigkeiten

Frage von DaPeddaWindows Netzwerk2 Kommentare

Servus Leute, ich habe hier das Problem, das wir auf der Applikationsebene unterschiedliche Uploadgeschwindigkeiten realisiert bekommen. Bei einer 50MBit-Leitung ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 43 MinutenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 4 StundenCPU, RAM, Mainboards3 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 18 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...