Batch Skript abbrechen
Hi,
habe folgendes Batch - Script geschrieben:
@echo off
cls
echo.
echo ##################################################################
echo ## ##
echo ## BACKUP ##
echo ## ##
echo ##################################################################
echo.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!!
echo.
echo J = Datensicherung beginnt in wenigen Sekunden
echo N = Datensicherung / Vorgang wird abgebrochen
SET auswahl = SET /p auswahl=
if '%auswahl%' == 'J' GOTO J
if '%auswahl%' == 'N' GOTO N
echo.
:J
echo .................es wird in wenigen Sekunden eine Datensicherung
echo gestartet..............
echo.
ping /n 10 localhost >nul
echo.
echo
echo #########################################
echo Die Datensicherung laeuft.................
echo #########################################
echo.
xcopy "C:\Dokumente und Einstellungen\testuser\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "E:\daten\outlook_sicherung" /Y
xcopy "C:\lieferanten" "E:\daten\lieferanten" /E /Y
xcopy "C:\Dokumente und Einstellungen\testuser\Eigene Dateien" "E:\daten\Eigene Dateien" /E /Y
echo.
echo.
echo #################################
echo Die Sicherung wurde abgeschlossen
echo #################################
ping /n 8 localhost >nul
echo #########################################
echo Ihr Sytem wird nun heruntergefahren
echo #########################################
shutdown -s -f -t 15
:N
Meine erste Frage: Kann so meine Selektion überhaupt funktionieren?
Kann mir jemand sagen wie ich das Batch-Sricpt abbrechen kann?
habe folgendes Batch - Script geschrieben:
@echo off
cls
echo.
echo ##################################################################
echo ## ##
echo ## BACKUP ##
echo ## ##
echo ##################################################################
echo.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!!
echo.
echo J = Datensicherung beginnt in wenigen Sekunden
echo N = Datensicherung / Vorgang wird abgebrochen
SET auswahl = SET /p auswahl=
if '%auswahl%' == 'J' GOTO J
if '%auswahl%' == 'N' GOTO N
echo.
:J
echo .................es wird in wenigen Sekunden eine Datensicherung
echo gestartet..............
echo.
ping /n 10 localhost >nul
echo.
echo
echo #########################################
echo Die Datensicherung laeuft.................
echo #########################################
echo.
xcopy "C:\Dokumente und Einstellungen\testuser\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "E:\daten\outlook_sicherung" /Y
xcopy "C:\lieferanten" "E:\daten\lieferanten" /E /Y
xcopy "C:\Dokumente und Einstellungen\testuser\Eigene Dateien" "E:\daten\Eigene Dateien" /E /Y
echo.
echo.
echo #################################
echo Die Sicherung wurde abgeschlossen
echo #################################
ping /n 8 localhost >nul
echo #########################################
echo Ihr Sytem wird nun heruntergefahren
echo #########################################
shutdown -s -f -t 15
:N
Meine erste Frage: Kann so meine Selektion überhaupt funktionieren?
Kann mir jemand sagen wie ich das Batch-Sricpt abbrechen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150286
Url: https://administrator.de/forum/batch-skript-abbrechen-150286.html
Ausgedruckt am: 10.01.2025 um 18:01 Uhr
21 Kommentare
Neuester Kommentar
Moin Corraggio1,
ich gebe auch gern mehrere Tipps, auch wenn vielleicht nicht die erwarteten.
Tipp 1) mit Doppelposts verprellst du einige gutwillige Stamm-Poster in den Skriptbereichen.
Du hast doch dieselbe Grütze schon in einem Parallelthread stehen... mit gefühlten 20 Antwortkommentaren. [edit] Real sind es sogar 33! [/edit]
Was soll das also hier?
Tipp 2)
Du bist auch schon im erwähnten Parallelbeitrag auf die erschwerte Lesbarkeit des Codes ohne Codeformatierung angesprochen worden.
Deine Reaktion war
Ja und weiter? Irgendwelche guten Vorsätze für den Rest des Jahres?
Tipp 3)
Kommentare mit potentiellen Hilfestellungen und Lösungsansätzen wenigstens lesen.
Tipp 4)
Fast alle im Batch verwendbaren Befehle haben auch eine eingebaute Hilfe, so z.B. der Befehl SET mit Eingabe von "Set /?" am CMD-Prompt.
Grüße
Biber
ich gebe auch gern mehrere Tipps, auch wenn vielleicht nicht die erwarteten.
Tipp 1) mit Doppelposts verprellst du einige gutwillige Stamm-Poster in den Skriptbereichen.
Du hast doch dieselbe Grütze schon in einem Parallelthread stehen... mit gefühlten 20 Antwortkommentaren. [edit] Real sind es sogar 33! [/edit]
Was soll das also hier?
Tipp 2)
Du bist auch schon im erwähnten Parallelbeitrag auf die erschwerte Lesbarkeit des Codes ohne Codeformatierung angesprochen worden.
Deine Reaktion war
Ja und weiter? Irgendwelche guten Vorsätze für den Rest des Jahres?
Tipp 3)
Kommentare mit potentiellen Hilfestellungen und Lösungsansätzen wenigstens lesen.
Tipp 4)
Fast alle im Batch verwendbaren Befehle haben auch eine eingebaute Hilfe, so z.B. der Befehl SET mit Eingabe von "Set /?" am CMD-Prompt.
Grüße
Biber
Hallo Corragiouno!
Wenn Du die Zeilen ab dem korrigierten "
ersetzt, sollte das klappen ...
[Edit]
... und ansonsten kann ich nur sehr zur Beachtung der Tipps von Biber raten ...
[/Edit]
Grüße
bastla
Wenn Du die Zeilen ab dem korrigierten "
SET auswahl = SET /p auswahl=
" (bei Verwendung von ""-Formatierung hätte ich jetzt auf die entsprechenden Zeilennummern verwiesen) durch1
2
3
2
3
set /p Auswahl=J/N?
if /i "%Auswahl%" neq "J" goto :eof
echo.
[Edit]
... und ansonsten kann ich nur sehr zur Beachtung der Tipps von Biber raten ...
[/Edit]
Grüße
bastla
Hi,
benutze bitte beim nächsten mal die Code Formatierung.
Das folgende Skript hat eine switch-case Anweisung, das ist glaube ich das was du willst.
Das skript hat jetzt
Gruß Miyamoto
benutze bitte beim nächsten mal die Code Formatierung.
Das folgende Skript hat eine switch-case Anweisung, das ist glaube ich das was du willst.
Das skript hat jetzt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@echo off
cls
echo.
echo ##################################################################
echo ## ##
echo ## BACKUP ##
echo ## ##
echo ##################################################################
echo.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!!
echo.
:A
echo J = Datensicherung beginnt in wenigen Sekunden
echo N = Datensicherung / Vorgang wird abgebrochen
SET /p auswahl=
if '%auswahl%' == 'J' GOTO J
if '%auswahl%' == 'N' GOTO N
GOTO A
echo.
:J
echo .................es wird in wenigen Sekunden eine Datensicherung
echo gestartet..............
echo.
ping /n 10 localhost >nul
echo.
echo
echo #########################################
echo Die Datensicherung laeuft.................
echo #########################################
echo.
xcopy "C:\Dokumente und Einstellungen\testuser\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "E:\daten\outlook_sicherung" /Y
xcopy "C:\lieferanten" "E:\daten\lieferanten" /E /Y
xcopy "C:\Dokumente und Einstellungen\testuser\Eigene Dateien" "E:\daten\Eigene Dateien" /E /Y
echo.
echo.
echo #################################
echo Die Sicherung wurde abgeschlossen
echo #################################
ping /n 8 localhost >nul
echo #########################################
echo Ihr Sytem wird nun heruntergefahren
echo #########################################
shutdown -s -f -t 15
:N
Gruß Miyamoto
@Miyamoto
Das "
Grüße
bastla
Das "
xcopy
" würde ich etwas ergänzen, zBxcopy "C:\Dokumente und Einstellungen\testuser\Eigene Dateien" "E:\daten\Eigene Dateien\" /DEHKRY
bastla
@bastla
Ich habe mir den Rest des Skriptes gar nicht angeschaut, nur den Teil wo die Auswahl getroffen wird ^^
Gruß Miyamoto
Ich habe mir den Rest des Skriptes gar nicht angeschaut, nur den Teil wo die Auswahl getroffen wird ^^
Gruß Miyamoto
Hallo Corragiouno
zu 1)
solche Fragen kannst Du Dir leicht selbst beantworten, indem Du vor jeder Anweisung ein HELP schreibst. In diesem konkreten Fall "help if".
Was in diesen Hilfen nicht steht oder nur ansatzweise - wie ich finde -, ist, auf welche genialen Arten und Weisen man dieses Wissen kombinieren kannst. Das lernst Du hier durch gezielte Fragen.
zu 2)
mußte ich auch schmerzlich lernen. Wenn Du help Set aufrufst und Dir die Beispiele ansiehst, wirst Du feststellen, dass die Zuweisungen ohne Leerstellen zu erfolgen haben. Deshalb mein Tipp: Beim Probieren immer exakt an die Schreibweisen halten und wenn es funktioniert, dann spielen ...
zu der künftigen Frage, warum das bei J immer noch nicht funktioniert
Überlege mal, wie Du Deine Zeilen interpretieren würdest, wenn Du der Rechner wärst:
Zeile 15, Zeile 17, Zeile 20, Zeile 21, und dann?
Wenn trotzt intensiven Nachdenkens nicht drauf kommst (was dann eher mein Level ist), dann mach doch mal das @echo off weg. Dann werden die allermeisten Fehler sichtbar ....
Und zuletzt ein gutgemeinter Rat:
Wenn Du sowas hier zum Besten gibst:
und lässt das Unkommentiert trotz Nachfrage stehen, wirst Du Dir wenig Freunde machen ...
Markus
zu 1)
solche Fragen kannst Du Dir leicht selbst beantworten, indem Du vor jeder Anweisung ein HELP schreibst. In diesem konkreten Fall "help if".
Was in diesen Hilfen nicht steht oder nur ansatzweise - wie ich finde -, ist, auf welche genialen Arten und Weisen man dieses Wissen kombinieren kannst. Das lernst Du hier durch gezielte Fragen.
zu 2)
mußte ich auch schmerzlich lernen. Wenn Du help Set aufrufst und Dir die Beispiele ansiehst, wirst Du feststellen, dass die Zuweisungen ohne Leerstellen zu erfolgen haben. Deshalb mein Tipp: Beim Probieren immer exakt an die Schreibweisen halten und wenn es funktioniert, dann spielen ...
zu der künftigen Frage, warum das bei J immer noch nicht funktioniert
Überlege mal, wie Du Deine Zeilen interpretieren würdest, wenn Du der Rechner wärst:
Zeile 15, Zeile 17, Zeile 20, Zeile 21, und dann?
Wenn trotzt intensiven Nachdenkens nicht drauf kommst (was dann eher mein Level ist), dann mach doch mal das @echo off weg. Dann werden die allermeisten Fehler sichtbar ....
Und zuletzt ein gutgemeinter Rat:
Wenn Du sowas hier zum Besten gibst:
dennoch bin ich davon überzeugt dass mehr Solidarität entgegengebracht werden könnte;
sonst fällt mir da auch nichts mehr anderes ein: "Also was soll das eigentlich hier"
sonst fällt mir da auch nichts mehr anderes ein: "Also was soll das eigentlich hier"
und lässt das Unkommentiert trotz Nachfrage stehen, wirst Du Dir wenig Freunde machen ...
Markus
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off
:Auswahl
cls
echo.
echo ##################################################################
echo ## ##
echo ## BACKUP ##
echo ## ##
echo ##################################################################
echo.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!!
echo.
echo J = Datensicherung beginnt in wenigen Sekunden
echo N = Datensicherung / Vorgang wird abgebrochen
SET /p auswahl = Bitte geben Sie (J / N) ein:
if /i '%auswahl%' == 'J' GOTO J
if /i '%auswahl%' == 'N' GOTO N
GOTO :Auswahl
:J
echo Die Sicherung erfolgt in wenigen Sekunden
GOTO :ENDE
:N
echo Der Vorgang wird abgebrochen
GOTO :ENDE
:ENDE
pause
Zur Erklärung:
1. Die Marke "Auswahl" setzte ich, damit, wenn etwas anderes als J oder N eingegeben wird er die Eingabe erneut abfragt.
2. Die "ENDE" Marke setzte ich, damit wenn J gewählt wird nicht auch noch N durchlaufen wird.
Hallo Corragiouno,
wenn Du das Echo off weggelassen hättest (und in diesem Fall auch das cls), dann hättest Du erkannt, dass die Zuweisung mittels Set /p ... (Zeile 17) immer noch nicht funktioniert.
Ich kann mich nur wiederholen, weil ich oft genug (und wohl noch nicht genug) in die Falle getappt bin.
Markus
PS: Hätte gern eine Hardcopy angefügt, aber auf die schnelle nicht gefunden, wie das geht .....
wenn Du das Echo off weggelassen hättest (und in diesem Fall auch das cls), dann hättest Du erkannt, dass die Zuweisung mittels Set /p ... (Zeile 17) immer noch nicht funktioniert.
Ich kann mich nur wiederholen, weil ich oft genug (und wohl noch nicht genug) in die Falle getappt bin.
Markus
1
SET /p auswahl=Bitte geben Sie (J / N) ein:
PS: Hätte gern eine Hardcopy angefügt, aber auf die schnelle nicht gefunden, wie das geht .....