bm-magic
Anmeldungsdatum: 28.02.2013 Beiträge: 37
|
Verfasst am: 05.04.2022, 22:34 Titel: Dateien aus unbekannen Ordner kopieren, Syntaxfehler. |
|
|
Hallo,
bei meinem letzten Problem hatte ich die Lösung im Administrator Forum gefunden und
wurde aufgemuntert, zum weitermachen. Ich habe gefolgt mit einem von einigen
nicht erledigten Problemen. Siehe:
https://administrator.de/content/detail.php?id=2362522566#comment-2363196631
Leider sieht es so aus, das ich mich immer mehr, von dem Thema entferne,
statt einer Lösung zu finden. Kann mir u.U. jemand hier helfen?
Es handelt sich um eine cnf.bat:
Code: | REM W-Disk_03/09_07.06.2000/MOR-(c)..bm-magic..CNF Aufruf
@BE %WORK%\MASK0.TXT
@ECHO OFF
@REM 1 CNF nach Tagesverzeichniss\CNF kopieren
Qbasic /RUN %WORK%\cnf.bas
@REM 2 Ergebniss anzeigen
IF %DE%==ON GOTO ENDE
@BE %WORK%\MASK0.TXT
@BE %WORK%\CNFF.TXT
:ENDE |
die eine cnf.bas aufruft:
Code: | REM W-Disk_03/03_13.07.2013/MOR-(c)..bm-magic..CNF Erstellung
DEFINT A-F
DEFSTR G-Z
DIM bef AS STRING
DIM dir AS STRING
zlw = ENVIRON$("ZLW")
qpfad = ENVIRON$("QHV") + ENVIRON$("LSYS")
heu = ENVIRON$("HEU")
zdir = ENVIRON$("ZDIR")
zver = heu + "\" + zdir
qdat = ENVIRON$("QDAT")
qtext = heu + "\quelle.txt"
ztext = heu + "\ziel.txt"
a = 0
b = 0
fh = FREEFILE
sdir = heu
such = zdir
CLS
GOSUB find
fdir:
sdir = heu
such = zdir
IF sdir = heu AND fpos = 0 THEN GOSUB mdir:
RETURN find
mdir:
MKDIR heu + "\" + zdir
RETURN find
find:
IF sdir = heu AND rueck = zdir THEN KILL zlw + "dir.txt"
IF sdir = heu AND rueck = zdir THEN GOTO main
SHELL "DIR " + sdir + " /B /A:D > " + zlw + "dir.txt"
OPEN zlw + "dir.txt" FOR INPUT AS #1
found = 0
WHILE (NOT EOF(1) AND found = 0)
LINE INPUT #1, a$
fpos = INSTR((a$), (such))
IF (fpos > 0) THEN found = 1
WEND
CLOSE #1
IF (found = 0) THEN rueck = "nicht": fpos = 0 ELSE rueck = a$
'PRINT "Im Pfad "; sdir; " wurde "; such; " als "; rueck; " gefunden."
IF sdir = zlw AND found = 0 THEN GOSUB fdir: ELSE GOSUB fdir
RETURN
main:
qver = ENVIRON$("UVA")
que = qpfad + qver + qdat
COLOR 10, 0
PRINT " 1. Quelle ist: "; que
SHELL "DIR " + que + " /W /B /S >" + qtext
qver = ENVIRON$("UVB")
que = qpfad + qver + qdat
COLOR 10, 0
PRINT " 2. Quelle ist: "; que
SHELL "DIR " + que + " /W /B /S >>" + qtext
COLOR 15
PRINT " Das Ziel ist: "; zver
COLOR 0, 7
PRINT " ACHTUNG! "
PRINT " Gleichnamige Dateien werden ueberschrieben! "
PRINT " Mit der richtigen Rheienfolge der Quellen, "
PRINT " kann man die richtige Datei behalten! "
PRINT " ********** "
SLEEP 4
COLOR 7, 0
CLS
OPEN qtext FOR INPUT AS #1 'QuellTextdatei oeffnen
DO UNTIL EOF(1)
LINE INPUT #1, text
bef = "COPY " + text + " " + zver
COLOR 14, 0
a = a + 1
PRINT "Nun wird "; a; "Datei kopiert: "; bef
OPEN ztext FOR APPEND AS #2 'ZielTextdatei oeffnen
PRINT #2, a; bef
CLOSE #2
SHELL bef
LOOP
CLOSE #1
SHELL "DIR " + zver + " /W /B /S > " + ztext
OPEN ztext FOR INPUT AS #fh 'Zielberichtdatei oeffnen
DO UNTIL EOF(fh)
LINE INPUT #fh, text
b = b + 1
LOOP
CLOSE #fh
IF a - b > 0 THEN
COLOR 12, 0
PRINT " Es wurden "; a - b; "Dateien ueberschrieben."
SHELL "FC " + qtext + " " + ztext + " > " + heu + "\bericht.txt"
PRINT " Vergleiche "; heu; "\bericht.txt"
SHELL "TYPE " + heu + "\bericht.txt |more"
SLEEP 3
GOTO kil
END IF
IF a = b THEN
PRINT " Es wurden "; b; "Dateien erfolgreich kopiert."
END IF
PRINT " Sollen die Berichte geloescht werden <j> /\ <n> & <CR>";
INPUT loes
SELECT CASE loes
CASE "j"
COLOR 12, 0
PRINT " Wirklich <j> /\ <n> & <CR>";
COLOR 14, 0
INPUT wir
SELECT CASE wir
CASE "j"
GOTO kil
END
CASE "n"
GOTO ber
END
END SELECT
CASE "n"
GOTO ber
END
END SELECT
ber:
PRINT " Die Berichte wurden aufgehoben."
COLOR 7, 0
GOTO ende
kil:
KILL qtext
KILL ztext
COLOR 7, 0
ende:
SYSTEM
|
Es funktioniert, aber zum Ende bekomme ich die Meldung Syntaxfehler.
Viele Details habe ich ich schon im dem oben genanntem Forum beschrieben.
Sehr Nette Grüße
Bohu |
|