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

Endlosschleife in Batch (nicht gewollt)

Frage Entwicklung Batch & Shell

Mitglied: 89485

89485 (Level 1)

12.04.2010 um 08:51 Uhr, 7754 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
test -r -f -t 180 -c "Rechner wird in 3 Minuten neugestartet!!!"
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
shutdown -r -f -t 180 -c "Rechner wird in 3 Minuten neugestartet!!!"
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:
shutdown.exe -r -f -t 180 -c "Rechner wird in 3 Minuten neugestartet!!!"
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):
>set pathext 
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1
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 ..
Ähnliche Inhalte
DNS
Server veröffentlicht nicht gewollte NIC
gelöst Frage von Franki42DNS11 Kommentare

Guten Morgen an alle Frühaufsteher, ich schlage mich seid einer Woche mit folgendem Problem herum: Kurz zur Ausgangslage: Domäne, ...

CPU, RAM, Mainboards
Rechner startet und geht aus - Endlosschleife
Frage von grinserCPU, RAM, Mainboards17 Kommentare

Guten Tag! Mein eigener Rechner hat vor einiger Zeit den Geist aufgegeben. Schon zum zweiten mal ist mir das ...

Microsoft Office
Endlosschleife im PowerPoint-Viewer 2010
gelöst Frage von SarekHLMicrosoft Office2 Kommentare

Hallo zusammen, wie kann ich mit dem PowerPoint-Viewer 2010 eine Präsentation in Endlosschleife immer wieder durchlaufen lassen? Danke im ...

Windows 10
"Installationsfehler" führt zu einer Endlosschleife
Frage von ToygunWindows 105 Kommentare

Ein Kunde hat gestern abend das Windows 10 creators an einem seiner Clients gestartet. Seit heute morgen bleibt er ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 8 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 15 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 17 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 20 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...