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

Batch Skript abbrechen

Frage Entwicklung Batch & Shell

Mitglied: Corraggiouno

Corraggiouno (Level 2) - Jetzt verbinden

03.09.2010, aktualisiert 10:30 Uhr, 8729 Aufrufe, 21 Kommentare

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?
Mitglied: awagner82
03.09.2010 um 10:48 Uhr
hi,

abbrechen sollte mit "STRG+C" möglich sein.

gruß
Bitte warten ..
Mitglied: Corraggiouno
03.09.2010 um 10:54 Uhr
jetzt habe ich gerade festgestellt, dass ich überhaupt gar keine Selektion-Option habe; kann mir da jemand noch einen Tipp geben?
Bitte warten ..
Mitglied: Biber
03.09.2010 um 11:06 Uhr
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

Zitat von Corraggiouno:
.............oh sorry, wegen der Formatierung

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
Bitte warten ..
Mitglied: bastla
03.09.2010 um 11:08 Uhr
Hallo Corragiouno!

Wenn Du die Zeilen ab dem korrigierten "SET auswahl = SET /p auswahl=" (bei Verwendung von "Code"-Formatierung hätte ich jetzt auf die entsprechenden Zeilennummern verwiesen) durch
01.
set /p Auswahl=J/N?  
02.
if /i "%Auswahl%" neq "J" goto :eof 
03.
echo.
ersetzt, sollte das klappen ...

[Edit]
... und ansonsten kann ich nur sehr zur Beachtung der Tipps von Biber raten ...
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Miyamoto
03.09.2010 um 11:13 Uhr
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
01.
@echo off 
02.
cls 
03.
echo. 
04.
echo ################################################################## 
05.
echo ## ## 
06.
echo ## BACKUP ## 
07.
echo ## ## 
08.
echo ################################################################## 
09.
echo. 
10.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!! 
11.
echo. 
12.
:A 
13.
echo J = Datensicherung beginnt in wenigen Sekunden 
14.
echo N = Datensicherung / Vorgang wird abgebrochen 
15.
SET /p auswahl= 
16.
if '%auswahl%' == 'J' GOTO J 
17.
if '%auswahl%' == 'N' GOTO N 
18.
GOTO A 
19.
echo. 
20.
:J 
21.
echo .................es wird in wenigen Sekunden eine Datensicherung 
22.
echo gestartet.............. 
23.
echo. 
24.
ping /n 10 localhost >nul 
25.
echo. 
26.
echo 
27.
echo ######################################### 
28.
echo Die Datensicherung laeuft................. 
29.
echo ######################################### 
30.
echo. 
31.
xcopy "C:\Dokumente und Einstellungen\testuser\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook" "E:\daten\outlook_sicherung" /Y 
32.
xcopy "C:\lieferanten" "E:\daten\lieferanten" /E /Y 
33.
xcopy "C:\Dokumente und Einstellungen\testuser\Eigene Dateien" "E:\daten\Eigene Dateien" /E /Y 
34.
echo. 
35.
echo. 
36.
echo ################################# 
37.
echo Die Sicherung wurde abgeschlossen 
38.
echo ################################# 
39.
ping /n 8 localhost >nul 
40.
echo ######################################### 
41.
echo Ihr Sytem wird nun heruntergefahren 
42.
echo ######################################### 
43.
shutdown -s -f -t 15 
44.
:N 
45.
 
Gruß Miyamoto
Bitte warten ..
Mitglied: bastla
03.09.2010 um 11:28 Uhr
@Miyamoto

Das "xcopy" würde ich etwas ergänzen, zB
xcopy "C:\Dokumente und Einstellungen\testuser\Eigene Dateien" "E:\daten\Eigene Dateien\" /DEHKRY
Grüße
bastla
Bitte warten ..
Mitglied: Karo
03.09.2010 um 11:35 Uhr
Hi,

als Ergänzung: Im Reskit von NT git es das kleine Tool CHOICE was man stattdessen auch einsetzen kann ...

Karo
Bitte warten ..
Mitglied: Miyamoto
03.09.2010 um 11:47 Uhr
@bastla
Ich habe mir den Rest des Skriptes gar nicht angeschaut, nur den Teil wo die Auswahl getroffen wird ^^

Gruß Miyamoto
Bitte warten ..
Mitglied: bankaifan
03.09.2010 um 13:45 Uhr
Immer wieder interesant dass es zu jedem noch so kleinen Problem zig lösungen gibt :D
Bitte warten ..
Mitglied: Corraggiouno
03.09.2010 um 17:13 Uhr
ok, habe mir einfach gedacht das ich die Option mit Abbrechen in einen neuen Post packe; sorry.
Ich bin euch ja dankbar für eure Hilfe, besonders von Biber; 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"
Bitte warten ..
Mitglied: bastla
03.09.2010 um 18:47 Uhr
Hallo Corragiouno!

Magst Du ein wenig genauer ausführen, in welcher Hinsicht Du einen Mangel an Solidarität ortest und wie der aus Deiner Sicht zu beheben wäre?

Grüße
bastla
Bitte warten ..
Mitglied: Corraggiouno
06.09.2010 um 08:34 Uhr
guten morgen;

ok; habe mir fest vorgenommen eure Tipps und Ratschläge folge zu leisten:
als aller erstes meine code-formatierung

01.
@echo off 
02.
cls 
03.
echo. 
04.
echo ################################################################## 
05.
echo ## 		                                                ## 
06.
echo ##                            BACKUP                            ## 
07.
echo ##                                                              ## 
08.
echo ################################################################## 
09.
echo. 
10.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!! 
11.
echo. 
12.
echo J = Datensicherung beginnt in wenigen Sekunden 
13.
echo N = Datensicherung / Vorgang wird abgebrochen 
14.
 
15.
SET /p auswahl = Bitte geben Sie (J / N) ein: 
16.
 
17.
if /i '%auswahl%' == 'J' GOTO J 
18.
if /i '%auswahl%' == 'N' GOTO N 
19.
 
20.
:J 
21.
echo Die Sicherung erfolgt in wenigen Sekunden 
22.
 
23.
:N 
24.
echo Der Vorgang wird abgebrochen 
25.
 
26.
pause
Meine Frage:
1. Was bedeutet eigentlich der parameter i
2. Die Auswahl funktioniert nun: wenn ich aber J oder N eingebe werden bei Zeilen

Die Sicherung erfolgt in wenigen Sekunden
Der Vorgang wird abgebrochen

ausgegeben; Kann mir da jemand noch einen Tipp geben?
Bitte warten ..
Mitglied: Karo
06.09.2010 um 09:16 Uhr
Moin

1. /i bedeutet, das der String INCASESENSITIVE ausgewertet wird, also egal ob groß oder klein eingegeben.
2.1 SET /p auswahl=Bitte geben Sie (J / N) ein:
2.2 If /i "%auswahl%"=="J" GOTO J
2.3 If /i "%auswahl%"=="N" GOTO N

Karo
Bitte warten ..
Mitglied: BigWim
06.09.2010 um 09:43 Uhr
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:
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"

und lässt das Unkommentiert trotz Nachfrage stehen, wirst Du Dir wenig Freunde machen ...

Markus
Bitte warten ..
Mitglied: bankaifan
06.09.2010 um 09:51 Uhr
01.
@echo off 
02.
:Auswahl  
03.
cls 
04.
echo. 
05.
echo ################################################################## 
06.
echo ## 		                                                ## 
07.
echo ##                            BACKUP                            ## 
08.
echo ##                                                              ## 
09.
echo ################################################################## 
10.
echo. 
11.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!! 
12.
echo. 
13.
echo J = Datensicherung beginnt in wenigen Sekunden 
14.
echo N = Datensicherung / Vorgang wird abgebrochen 
15.
 
16.
SET /p auswahl = Bitte geben Sie (J / N) ein: 
17.
 
18.
if /i '%auswahl%' == 'J' GOTO J 
19.
if /i '%auswahl%' == 'N' GOTO N 
20.
GOTO :Auswahl 
21.
 
22.
:J 
23.
echo Die Sicherung erfolgt in wenigen Sekunden 
24.
 
25.
GOTO :ENDE 
26.
 
27.
:N 
28.
echo Der Vorgang wird abgebrochen 
29.
 
30.
GOTO :ENDE 
31.
 
32.
:ENDE 
33.
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.
Bitte warten ..
Mitglied: Corraggiouno
06.09.2010 um 10:23 Uhr
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
Ich fand einfach, die Aussage
Ja und weiter? Irgendwelche guten Vorsätze für den Rest des Jahres?
schon etwas schroff war; ich werde in Zukunft eure Ratschläge und Tipps hinsichtlich Formatierung und "Doppelpost's" berücksichtig, versprochen!!
Trotzdem vielen vielen Dank für eure Hilfe
Bitte warten ..
Mitglied: Corraggiouno
06.09.2010 um 11:10 Uhr
Hey,

01.
@echo off 
02.
:auswahl 
03.
cls 
04.
echo. 
05.
echo ################################################################## 
06.
echo ## 		                                                ## 
07.
echo ##                            BACKUP                            ## 
08.
echo ##                                                              ## 
09.
echo ################################################################## 
10.
echo. 
11.
echo Bitte stellen Sie sicher, dass alle Anwendungen geschlossen sind!! 
12.
echo. 
13.
echo J = Datensicherung beginnt in wenigen Sekunden 
14.
echo N = Datensicherung / Vorgang wird abgebrochen 
15.
echo. 
16.
 
17.
SET /p auswahl =Bitte geben Sie (J / N) ein: 
18.
if /i '%auswahl%' == 'J' GOTO :J 
19.
if /i '%auswahl%' == 'N' GOTO :N 
20.
goto :auswahl 
21.
 
22.
:J 
23.
echo Die Sicherung erfolgt in wenigen Sekunden 
24.
goto :ende 
25.
 
26.
:N 
27.
echo Der Vorgang wird abgebrochen 
28.
goto :ende 
29.
 
30.
:ende 
31.
pause
......egal welchen buchstaben ich eingebe; es wird immer erneut nach der Eingabe gefragt; bzw. lasse ich die option
01.
goto :auswahl

wegfallen, wird bei
J und N
Die Sicherung erfolgt in wenigen Sekunden
ausgegeben;
Bitte warten ..
Mitglied: BigWim
06.09.2010 um 11:37 Uhr
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

01.
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 .....
Bitte warten ..
Mitglied: Corraggiouno
06.09.2010 um 11:48 Uhr
oooh, mist das Leerzeichen; vielen Dank!
Bitte warten ..
Mitglied: BigWim
06.09.2010 um 11:59 Uhr
Hört sich so an, als wäre diese Anfrage gelöst, oder?


Markus
Bitte warten ..
Mitglied: Karo
06.09.2010 um 13:02 Uhr
Hättest Du die Sachen genau durchgelesen, so hättest Du den Hinweis schon weiter oben von mir gesehen ....

Karo

PS: Auch ich denke die Sache kann als gelöst gesetzt werden.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Batch & Shell
gelöst Batch-Skript für Druckerzuweisung auf Terminalserver - Variablenproblem (3)

Frage von BirdyB zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...