sirbenobi
Goto Top

Batchsicherung falsche eingabe sichert trotzdem errorlevel falsch?

Hallo liebes Team, stöbere nun schon länger bei euch herum nur zu meiner frage habe ich leider keine wirkliche antwort gefunden.

Hab mir mal kurz aus spaß ein kleines sicherungs script geschrieben

@echo off
echo.
echo SICHERUNG
echo.
echo -----------------------------------------
echo Von C:\EIGENE DATEIEN
echo -----------------------------------------
echo Nach D:\DUMP
echo -----------------------------------------
set tag=%date:~-10,2%
set monat=%date:~-7,2%
set jahr=%date:~-4%
echo.
echo ########################################
echo.# #
echo # Heute ist der %tag%.%monat%.%jahr% #
echo # ein schoener Tag zum Sichern #
echo.# #
echo # ....please wait.... #
echo.# #
echo # ....Starte nun die Sicherung.... #
echo ########################################
echo.# #
echo ############################
echo # #
echo.# #
echo # Sicherung (S)tarten #
echo # Sicherung (B)eenden #
echo.# #
echo # #
echo ############################
:auswahl
set /P wahl=Bitte waehlen:
if /i "%wahl%"=="S" goto:Starten
if /i "%wahl%"=="B" goto:Beenden
if /i "%wahl%"=="" goto:error
echo Falsche Auswahl!

:Starten
goto SICH

:Beenden
goto ende

:SICH
xcopy /I /E /Y "%userprofile%\Eigene Dateien" D:\DUMP > Bericht.txt
if errorlevel 255 goto :error
IF NOT EXIST D:\DUMP GOTO MD

goto ende

:error
echo.
echo !ACHTUNG!
echo.
echo ES WURDE EIN FEHLER ERMITTELT
echo.
echo SICHERN WIRD BEENDET
goto ende

:MD
MD D:\DUMP
goto SICH

:ende
Echo Vielen Dank das Sie Sirbenobi`s Sicherung`s BATCH benutzt haben.
Echo.
PAUSE

hab das noch nie gemacht doch bin ich jetzt recht stolz drauf face-smile (natürlich mit vorlagen etc....)

was nicht wirklich funkt. ist zb die falsche auswahl. er fängt dann trotzdem zum sichern an ohne das er die errorschleife auch nur berührt.
und könntet ihr mir das noch mal mit dem errorlevel erklären

besten dank

lg

sirbenobi

Content-Key: 106786

Url: https://administrator.de/contentid/106786

Printed on: April 23, 2024 at 17:04 o'clock

Member: bastla
bastla Jan 22, 2009 at 12:33:03 (UTC)
Goto Top
Hallo sirbenobi und willkommen im Forum!

Die Eingabe eines nicht gewünschten Zeichens hat bei Deiner aktuellen Fassung keine weiteren Konsequenzen, da, wenn alle 3 Abfragen zu keinem Sprung geführt haben, der Teil ":Starten" erreicht wird - daher eher so:
:auswahl
set /P wahl=Bitte waehlen:
if /i "%wahl%"=="S" goto :Starten  
if /i "%wahl%"=="B" goto :Beenden  
echo Falsche Auswahl!
echo\
goto :auswahl
Zur Abfrage des Errorlevels: Da diese Abfrage immer als "größer-gleich" ausgeführt wird, musst Du
if errorlevel 1 goto :error
verwenden - damit wird bei jedem Errorlevel > 0 der Sprung ausgeführt.
Noch eine Anmerkung: "xcopy" erstellt bei Bedarf den Zielordner ohnehin automatisch, sodass ein "MD D:\DUMP" unnötig sein / nix bringen wird ...

Grüße
bastla

P.S.: Falls Dir die Art, wie meine Batchzeilen dargestellt werden, gefallen sollte (und das sollte sie face-wink):
Member: sirbenobi
sirbenobi Jan 22, 2009 at 14:37:05 (UTC)
Goto Top
hej bastla

und danke für die schnelle antwort! ok wenn ich das jetzt richtig sehen springt er wenn die falsche taste gedrückt wird einfach wieder auf die anfangs schfeife auf.

wenn ich aber will das er abbricht einfach statt [goto :auswahl] [goto :error] zb. oder ?

ok wenn er automatisch erstellt wird ist ein md sinnlos *g* alles klar

lg

sirben
Member: bastla
bastla Jan 22, 2009 at 14:59:31 (UTC)
Goto Top
Hallo sirbenobi!

wenn ich aber will das er abbricht einfach statt [goto :auswahl] [goto :error] zb. oder ?
Könntest Du so machen - ob das sinnvoll ist, musst Du selbst entscheiden.

Grüße
bastla