![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Senior Member
![]() Registriert seit: 19.04.2001
Alter: 50
Beiträge: 165
|
![]() 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? |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() 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. |
![]() |
![]() |
![]() |
#3 |
Senior Member
![]() Registriert seit: 19.04.2001
Alter: 50
Beiträge: 165
|
![]() 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 ![]() 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! |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() 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 |
![]() |
![]() |
![]() |
#5 |
Senior Member
![]() Registriert seit: 19.04.2001
Alter: 50
Beiträge: 165
|
![]() Also könnte ich den ganzen Schnickschnack vergessen und das einfach so machen:
@echo off :Start Copy EDVWichtigeBegriffe.doc A: /V :End |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() Meines Erachtens ja. Versuchs mal mit einer defekten Diskette und kopier etwas drauf und schau was der copy-Befehl ausgibt.
mfg |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|