gelöst Endlosschleife in Batch (nicht gewollt)

Mitglied: 89485

89485 (Level 1)

12.04.2010 um 08:51 Uhr, 9196 Aufrufe, 13 Kommentare

Guten Morgen,

ich hab folgendes Problem:

Ich wollte meinem Vater ein Batch schreiben, indem er remote andere Rechner, bei sich in der Arbeit runterfahren kann.
In Gegenzug soll aber auch der User, an dem jeweiligen PC eine Möglichkeit haben, den Shutdownbefehl abzubrechen.

Das Problem ist nun dies, dass das Batch einfach so in eine Endlosschleife fällt, und nur die eigentlichen Befehle, also echo ausgibt.
Die PC´s laufen jeweils mit Windows XP SP2...

Hier ist der Quellcode von der 1. Batchdatei:

@echo off
cd\
cls

shutdown -r -f -t 180 -c "Rechner wird in 3 Minuten neugestartet!!!"
echo.
echo Zum Beenden der laufenden Anwendung
echo.
echo in diesem FENSTER
echo.
echo 2x Enter
echo.
echo drcken.
echo.
pause>nul
call F:\skripte\Shutdown-blocker.bat
echo Erfolgreich ausgefhrt...
echo.
echo Zum Beenden Enter drcken!
pause>nul

die 2. Batchdatei, die aufgerufen wird, hat den Quelltext.

@echo off
cd\
shutdown -a
pause>nul


Hat bei mir zu Hause schon einwandfrei funktioniert?!?

LG Batchliebhaber

P.S.: Bitte auch selbst ausprobieren, da auf den ersten Blick kein Programmierfehler zu erkennen ist.
Mitglied: Biber
12.04.2010 um 09:53 Uhr
Moin Batchliebhaber,

wenn Bätches in Endlosschleifen verfallen, obwohl eigentlich kein "goto ::whereEver" verwendet wird...

dann liegt es in 99,34% der Fälle daran, dass sie sich selbst aufrufen.
Heißt eventuell der erste Batch "Shutdown.bat" oder "Shutdown.cmd"?

Ansonsten:
  • bitte Codetags verwenden
  • einer, der etwas davon versteht, hat dich in einem deiner letzten Beiträge darauf hingewiesen, dass dieses sinnfreie "cd \" als Standardzeile 2 Bullshit entbehrlich ist. Warum/wozu ist das jetzt wieder drin? Und warum wechselt z.B. der zweite batch überhaupt nach Irgendwo-Root? Und warum wird der ursprüngliche Zustand nicht wieder hergestellt?
  • Wieso sollte auf jedem gatesverdammten Rechner in Reichweite deines Papas ein Verzeichnis "F:\Skripte" befinden
  • Welchen Rechner glaubst du denn remote herunterzufahren????

Grüße
Biber
Bitte warten ..
Mitglied: 89485
12.04.2010 um 10:00 Uhr
Moin,

ja aber warum sollte ich denn ein goto :Sonstwo verwenden, wenn ich es gar nicht brauche???

Der erste Batch heißt "Shutdown.bat", aber wie soll ich es denn sonst nennen? (xxx.bat)

zu deinen Tipps:

- ich hab auch schon bei letzten Mal gesagt, dass ich des cd\ und cls einfach als Gewohnheit nimm, also kannst du des außen vorlassen....
- der Pfad "F:\skripte\...." is nur, weil da des Skript im Moment auf den USB Stick liegt, aber es doch auch egal, wo es liegt, weil dem Shutdownbefehl des doch am * vorbeigeht?!?
- ebenso mit dem Rechner, des geht dann über IP - Adresse?


Was ich eigentlich wissen wollte, wieso des Skript in eine Endlosschleife fällt? Und dann statt den Befehlen, nur echos anzeigt........


LG
Bitte warten ..
Mitglied: bastla
12.04.2010 um 15:25 Uhr
Hallo Batchliebhaber!
Was ich eigentlich wissen wollte, wieso des Skript in eine Endlosschleife fällt? Und dann statt den Befehlen, nur echos anzeigt........
Weil Dein Batch nicht zu den 0,66 % gehört ...

Grüße
bastla
Bitte warten ..
Mitglied: 89485
12.04.2010 um 15:27 Uhr
Hallo Bastla,

was Biber geschrieben hat;

dann liegt es in 99,34% der Fälle daran, dass sie sich selbst aufrufen.
Heißt eventuell der erste Batch "Shutdown.bat" oder "Shutdown.cmd"?

sagt doch, dass es sich selbst aufruft; Es ruft sich aber nicht selbst auf, sondern wird wie jedes andere Batch oder Programm mit einem Doppelklick gestartet.
und wieso sollte es an der Endung .bat oder .cmd liegen? Ich hab viele andere XXX.bat Dateien, die nicht in eine Endlosschleife fallen....


Also was hat des damit zu tun? o.O

LG
Bitte warten ..
Mitglied: bastla
12.04.2010 um 15:42 Uhr
Hallo Batchliebhaber!

Na gut, ein Beispiel extra für Dich: Wenn Du einen Batch namens "test.bat" hättest, in dem auch die Zeile
steht - was würde der wohl machen, wenn im Ablauf diese Zeile erreicht wird? (Bitte auch selbst ausprobieren, da auf den ersten Blick kein Programmierfehler zu erkennen ist.)

Grüße
bastla
Bitte warten ..
Mitglied: 89485
12.04.2010 um 15:49 Uhr
Hi,

ja Ablauf...

1. Shutdown -r = herunterfahren und neustarten
2. Shutdown -f = erzwingen fürs Schließen der offenen Anwendungen
3. Shutdown -t 180 = wartet 180 sec. bis zur Ausführung
4. Shutdown -c "xxx" = Kommentar
Bitte warten ..
Mitglied: bastla
12.04.2010 um 16:05 Uhr
Hallo Batchliebhaber!
1. Shutdown -r = herunterfahren und neustarten
2. Shutdown -f = erzwingen fürs Schließen der offenen Anwendungen
3. Shutdown -t 180 = wartet 180 sec. bis zur Ausführung
4. Shutdown -c "xxx" = Kommentar
Wie, das alles kann Deine "Shutdown.bat"?

Grüße
bastla
Bitte warten ..
Mitglied: 89485
12.04.2010 um 16:07 Uhr
ehmmm ????

Ja....

steht doch in 1. Kommentar xD
Bitte warten ..
Mitglied: bastla
12.04.2010 um 16:12 Uhr
Hallo Batchliebhaber!

Gut, lassen wir die Scherze ...

Wenn Du in eine Datei "Shutdown.bat" die Zeile
schreibst, hast Du eine sehr gute Chance, damit was zu starten? Richtig, Deine "Shutdown.bat" ...

... die dann natürlich nix Besseres zu tun hat, als was zu starten? Richtig, ... (ja, kennen wir schon).

Wenn Du Deinen Batch allerdings "BLHShutdown.bat" nennst, oder vielleicht die entsprechende Zeile so:
schreibst ...

Grüße
bastla
Bitte warten ..
Mitglied: 89485
12.04.2010 um 17:26 Uhr
ok Hi Bastla =D

jaja immer mit den Rookies Scherze machen ^^

bringt des wirklich so viel, wenn ich als Befehl shutdown.exe schreibt bzw. was bringt des BLH im Dateinamen???

Grüße

Batchliebhaber
Bitte warten ..
Mitglied: bastla
12.04.2010 um 17:36 Uhr
Hallo Batchliebhaber!
bringt des wirklich so viel, wenn ich als Befehl shutdown.exe schreibt bzw. was bringt des BLH im Dateinamen???
Wenn Du es noch nicht weißt, kann ich Dich eigentlich nur ein weiteres Mal zitieren:
Bitte auch selbst ausprobieren ...
... und reden wir dann nochmals drüber ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
12.04.2010 um 18:46 Uhr
Moin Batchliebhaber,

Zitat von 89485:
Hallo Bastla,

was Biber geschrieben hat;

dann liegt es in 99,34% der Fälle daran, dass sie sich selbst aufrufen.
Heißt eventuell der erste Batch "Shutdown.bat" oder "Shutdown.cmd"?

sagt doch, dass es sich selbst aufruft;
Exakt. So sagte Biber.
Es ruft sich aber nicht selbst auf, ....
Do-hoch! Könnten diese Augen lügen...? *liebguck*

Ich versuche auch noch einmal, bastlas schier unerschöpfliche Geduld nachzuahmen... ungeachtet der geringen Erfolgsaussichten.

und wieso sollte es an der Endung .bat oder .cmd liegen?
Geh doch mal bitte kurz an einen der rund um die Uhr geöffneten CMD-Prompts.
Tipp dort ein (ohne das führende ">", welches meinen Prompt darstellt):
Die Antwortzeile (beginnend mit PATHEXT, nicht zu verwechseln mit dem ähnlich klingenden Kleber), listet in zufällig erscheinender Reihenfolge alle Datei-Endungen auf, die der CMD-Interpreter als Endungen und Merkmale ihm bekannter ausführbarer Dateien akzeptiert.

Auf deutscher:
Wenn du einen Befehl am CMD-Prompt mit ENTER abschickst (oder im Batch in einer Zeile stehen hast und den Batch ausführst) ...
... wie zum Beispiel den Befehl "Hallo" ....
...und "Hallo" nun kein dem Batch bekanntes internes Kommando oder aus anderen Gründen vorrangig ist
...dann prüft der CMD-Interpreter stumpf nach alphabetischer Reihenfolge
  • Existiert im aktuellen Verzeichnis oder in Suchpfad PATH eine Datei Hallo.bat? --> wenn ja, führe die Hallo.bat aus, wenn nein, suche weiter
  • Existiert im aktuellen Verzeichnis oder in Suchpfad PATH eine Datei Hallo.cmd?--> wenn ja, führe die Hallo.cmd aus, wenn nein, suche weiter
  • Existiert im aktuellen Verzeichnis oder in Suchpfad PATH eine Datei Hallo.com?--> wenn ja, führe die Hallo.com aus, wenn nein, suche weiter
  • Existiert im aktuellen Verzeichnis oder in Suchpfad PATH eine Datei Hallo.exe?--> wenn ja, führe die Hallo.exe aus, wenn nein, suche weiter
  • ....
  • ....
  • Existiert im aktuellen Verzeichnis oder in Suchpfad PATH eine Datei Hallo.wsh?--> wenn ja, führe die Hallo.wsh aus, wenn nein, sage "Unbekannter Befehl oder Dateiname 'Hallo'".
[vereinfachte Prozessbeschreibung, die nur diesen Sachverhalt modellhaft erklären soll]

Deshalb wird bei dir, wenn du nur "Shutdown" schreibst UND eine Shutdown.bat UND eine Shutdown.exe vorhanden ist, zuerst deine Shutdown.bat gefunden und aufgerufen.

Wenn du keine Endung angibst.

Grüße
Biber
Bitte warten ..
Mitglied: 89485
15.04.2010 um 06:59 Uhr
Danke für die Tipps =D

ist ebenfalls gelöst...
Bitte warten ..
Heiß diskutierte Inhalte
Hardware
Schwarmwissen gefragt: Rätselstunde am Samstag Abend - LWL Verkabelung
gelöst Xaero1982FrageHardware32 Kommentare

Nabend Zusammen, heute Abend gibt es ein kleines Rätsel für euch was es zu lösen gilt. Die Lösung werde ...

Backup
Veeam Backup-Server aus der Domäne nehmen
redhorseFrageBackup20 Kommentare

Guten Morgen, da in unserer Backupumgebung ein Hardwaretausch ansteht, konzipiere ich gerade Möglichkeiten die Sicherheit zu erhöhen. Konkret geht ...

Vmware
ESXi für Raspberry Pi
sabinesInformationVmware18 Kommentare

VMware hat den ESXi für den Raspberry Pi (zu Testzwecken) vorgestellt, läuft 180 Tage auf dem Pi 4 mit ...

Windows Server
Server mit AMD EPYC 7F52 (1Socket) wird als 2 Socket Server angezeigt
LordXearoFrageWindows Server11 Kommentare

Hallo Zusammen, ich komme mit meinem Problem nicht so recht weiter und hoffe aufjemanden der noch weitere Ideen hat. ...

Notebook & Zubehör
Surface pro 3 oder aktueller
devazubiFrageNotebook & Zubehör11 Kommentare

Moin moin zusammen, ich möchte eine kurze Umfrage/Feedbackrunde starten. Ich habe gerade angefangen Wirtschaftsinformatik berufsbegleitend zu studieren. Ich würde ...

Outlook & Mail
Mails Farblich kennzeichnen für mehrer PCs ohne Exchange
gelöst luzifermbFrageOutlook & Mail10 Kommentare

Guten Tag, ich brauche Hilfe zu MS Outlook! Ich habe eine kleines Firmennetzwerk und möchte gerne mit 3 PCs ...

Ähnliche Inhalte
Windows Server

Probleme NTFS-Berechtigungen: gewollt oder ein Bug?

gelöst BigBobFrageWindows Server5 Kommentare

Hallo, beim einrichten meiner Fileserver (1x Windows Server 2016, 1x CentOS7 mit SMB und Winbind) bin ich bei den ...

Batch & Shell

Batch - Kopierjob

Goldenone95FrageBatch & Shell8 Kommentare

Hallo Community, leider weiß ich bezüglich einer Batch-Datei zum Kopieren und Ersetzen einer Datei in einem anderen Verzeichnis nicht ...

Batch & Shell

Kopfschmerzen (Batch)

gelöst clragonFrageBatch & Shell4 Kommentare

"" " Kann syntaktisch an dieser Stelle nicht verarbeitet werden Ich sterbe während die Flammen meiner Rage mich innerlich ...

Entwicklung

Batch - Überprüfung

gelöst apex.predator24FrageEntwicklung6 Kommentare

Hallo Zusammen Gibt es eine Möglichkeit, einen Prozess im TaskManager über eine Batch-Datei zu überprüfen ob dieser läuft oder ...

Batch & Shell

BATCH-Script

gelöst hipfzwirgelFrageBatch & Shell9 Kommentare

Hallo Batch-Profis, ich habe ein Batch-Script geschrieben mit welchem ich einen Treiber unattended installieren kann. Dazu benötige ich 5 ...

Windows Netzwerk

Shutdown batch

Andreas-scaFrageWindows Netzwerk9 Kommentare

Hallo zusammen der Befehl shtudwon ermöglicht mir ja Rechner herunterzufahren. Ich würde nun folgendes gerne realsieren. Jeden Tag zu ...

Neue Fragen
Administrator Magazin
11 | 2020 Virtualisierung ist aus der IT nicht mehr wegzudenken. In der November-Ausgabe des IT-Administrator Magazins dreht sich der Schwerpunkt um das Thema "Server- und Storage-Virtualisierung". Darin erfahren Sie, wie sich die Virtualisierungstechnologie entwickelt hat, welche Varianten es im Bereich Server und Speicher gibt und wie ...
Neue Beiträge
Neue Jobangebote
Server- und Storage-VirtualisierungServer- und Storage-VirtualisierungBerechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid Cloud