WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   .bat-Sicherung prüfen (http://www.wcm.at/forum/showthread.php?t=27973)

dietz 14.08.2001 14:46

.bat-Sicherung prüfen
 
Hallo,
ich hab wieder mal eine Frage zu einem Batch. Ich sichere diverse Dateien mit einem .bat auf Diskette. Es wäre ideal wenn ich noch irgentwie überprüfen könnte ob die Sicherung funktioniert hat, also ob wirklich was auf Diskette kopiert wurde. Kann ich das in einer If-Else Schleife abfragen?

flinx 14.08.2001 15:11

Nur so aus dem ff ohne Gewähr:

Mit if exist kannst du überprüfen ob die Datei vorhanden ist.

if exist a:\xxx.xxx goto "label sowieso"

mit fc /b (file compare binary), kannst überprüfen ob sie gleich dem Original ist.

/Anfang Beispiel

@echo off

:datei1
if exist a:\datei1.xxx goto compare1
set fehler=datei1
goto error

:datei2
if exist a:\datei2.xxx goto compare2
set fehler=datei2
goto error
...


Ab da muss wegen der fehlerbehandlung selber schaun, bin zu faul.
:compare1
fc /b a:\datei1.xxx "pfad zur originaldatei eg. c:\windows\datei1.xxx"
goto datei2

:compare2
fc /b a:\datei1.xxx "pfad zur originaldatei eg. c:\windows\datei1.xxx"
goto datei3

...

:error
echo Die Datei %fehler% ist fehlerhaft.
goto ende


:ende
echo Und alles ist gut.

/Ende Beispiel


HTH

PS: Da sind sicher Fehler drinnen, also verlass dich nicht auf das. Ist nur ein Beispiel wie ich es machen würde, gibt sicher elegantere Lösungen.

dietz 14.08.2001 16:25

Falls es jemand interessiert wie ich das gelöst habe:

@echo off


:Start
Echo -----------------------------------------------------
Echo Legen Sie bitte eine Diskette in Laufwerk A: ein.....
Echo -----------------------------------------------------
Pause

REM Falls der copy-Befehl nicht funktioniert und nicht die alte Datei REM dann bei "if exist" true liefert lösche ich diese zuerst weg
Del A:\ABC.doc

Copy ABC.doc A:


If exist A:\ABC.doc Goto Vergleich
Goto Error


:Vergleich
fc /B A:\ABC.doc "D:\Eigene Dateien\hie\013\ABC.doc"
Goto SicherungEnde

:SicherungEnde
Echo --------------------------------------------------------------
Echo Sicherung beendet, bitte obige Meldung (FC:) pruefen blablabla
Echo --------------------------------------------------------------

Pause

Goto End

:Error
Echo -----------------------------------------------------
Echo Sicherung nicht korrekt beendet
Echo -----------------------------------------------------

Pause

:End


Also derjenige der die Datei sichert muß die FC Meldung prüfen ob Unterschiede festgestellt wurden, und falls die Datei nicht auf Diskette existiert gebe ich eine eindeutige Meldung aus.
Falls jemand Verbesserungsvorschläge hat bitte teilt mir diese mit!

flinx 14.08.2001 18:46

Mir ist noch was eingefallen.

Du könntest beim kopieren den /V (Verify) Schalter setzen, also copy /v irgendwas irgendwohin, und dann die Ausgabe des copy-Befehls ansehen.

Dann sollte es richtig geschrieben worden sein und du brauchst es nicht überprüfen.

Mfg

dietz 16.08.2001 09:43

Also könnte ich den ganzen Schnickschnack vergessen und das einfach so machen:

@echo off

:Start

Copy EDVWichtigeBegriffe.doc A: /V

:End

flinx 16.08.2001 16:41

Meines Erachtens ja. Versuchs mal mit einer defekten Diskette und kopier etwas drauf und schau was der copy-Befehl ausgibt.

mfg


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag