BATCH lokales Verzeichnis mit Webverzeichnis vergleichen, uploads UND deletes generieren
Aufgabe hier:
Lokales+Webverzeichnis fehlende Dateien mit FTP Upload und Dateien die nicht mehr auf lokal sind im Web löschen.
Hintergrund:
Es geht um eine ganz spezielle Datensicherung (Lokales und ein Webverzeichnis identisch halten).
Vorgabe: Automatisch(Task), es werden lokal Images und Dokumente erstellt gezippt und in 2GB Scheiben zerteilt.
Nachfolgende BATCH läuft, es fehlt aber:
1. Anweisung zum löschen so was wie FTP_Deletes.txt
2. Der Vergleich müsste auf Namen, Tagesdatum(ohne Uhrzeit!) sein oder besser binär da es sich um 2GB Happen von ZIP Archiven sind.
Im Augenblik wird nur auf Namen geprüft.
3. Nicht schlecht wäre auch wenn das Arbeitsverzeichnis C:\ auf dem variablen Programmpfad liegen könnte.
Vorab, Programmpfad, Startverzeichnis im Beispiel:
P:\Dateimanagement-DOS-WIN\DOS-Dateimanagement\issFTP\
Verzeichnis Lokal:
C:kunden
Web Verzeichnis:
99.999.999.999 httpdocs\kunden\FTPDatsi\PHYSIO\*.*
START.bat
REM überflüssig zur Info
del C:\FTP_aufServer.txt
del C:\FTP_Uploads.txt
del C:\FTP_Deletes.txt
del C:\FTP_Vorhanden.txt
ftp -s:ftpopenR.src
die includierte ftpopenR.src
open 99.999.999.999
benutzer
kennwort
cd httpdocs
cd kunden
cd FTPDatsi
cd PHYSIO
lcd P:\Dateimanagement-DOS-WIN\DOS-Dateimanagement\issFTP\
dir /httpdocs/kunden/FTPDatsi/PHYSIO FTP_aufServer.txt
disconnect 99.999.999.999
bye
Produkt bisher OK ---------------------------------------------FTP_aufServer.txt:
drwxr-xr-x 2 iss24-ftp psacln 6 May 19 13:58 Ablage
-rw-r--r-- 1 iss24-ftp psacln 174 May 19 17:18 FTP_Uploads.txt
drwxr-xr-x 2 iss24-ftp psacln 4096 May 19 13:55 Images
-rw-r--r-- 1 iss24-ftp psacln 738 May 19 17:18 index_xyz.html
-rw-r--r-- 1 iss24-ftp psacln 16 May 19 13:55 testdatei
-rw-r--r-- 1 iss24-ftp psacln 738 May 19 13:58 testdatei2
weiter in der BATCH:
echo open 99.999.999.999>>C:\FTP_Uploads.txt
echo benutzer>>C:\FTP_Uploads.txt
echo kennwort>>C:\FTP_Uploads.txt
echo cd httpdocs>>C:\FTP_Uploads.txt
echo cd kunden>>C:\FTP_Uploads.txt
echo cd FTPDatsi>>C:\FTP_Uploads.txt
echo cd PHYSIO>>C:\FTP_Uploads.txt
REM das müsste umgestrickt werden, bin ich zu doof dazu:
for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i"
chcp 1252
FOR /F "delims=" %%i in ('dir /b "C:\kunden\*.*"') do FINDSTR /e /c:"%%~nxi" C:\FTP_aufServer.txt && echo REM OK "%%~nxi" >>FTP_Vorhanden.txt
REM FOR /F "delims=" %%i in ('dir /b "C:\kunden\*.*"') do FINDSTR /e /c:"%%~nxi" C:\FTP_aufServer.txt && echo REM OK "%%~nxi" >>FTP_Deletes.txt ??
chcp %CP%
REM FTP Copy nach server = OK:
echo disconnect 99.999.999.999>>C:\FTP_Uploads.txt
echo bye>>C:\FTP_Uploads.txt
ftp -s:FTP_Uploads.txt
ENDE BATCH
Erzeugter script = OK, Beispiel FTP_Uploads.txt:
open 99.999.999.999
benutzer
kennwort
cd httpdocs
cd kunden
cd FTPDatsi
cd PHYSIO
put "c:\kunden\save-lokal"
disconnect 99.999.999.999
bye
Lokales+Webverzeichnis fehlende Dateien mit FTP Upload und Dateien die nicht mehr auf lokal sind im Web löschen.
Hintergrund:
Es geht um eine ganz spezielle Datensicherung (Lokales und ein Webverzeichnis identisch halten).
Vorgabe: Automatisch(Task), es werden lokal Images und Dokumente erstellt gezippt und in 2GB Scheiben zerteilt.
Nachfolgende BATCH läuft, es fehlt aber:
1. Anweisung zum löschen so was wie FTP_Deletes.txt
2. Der Vergleich müsste auf Namen, Tagesdatum(ohne Uhrzeit!) sein oder besser binär da es sich um 2GB Happen von ZIP Archiven sind.
Im Augenblik wird nur auf Namen geprüft.
3. Nicht schlecht wäre auch wenn das Arbeitsverzeichnis C:\ auf dem variablen Programmpfad liegen könnte.
Vorab, Programmpfad, Startverzeichnis im Beispiel:
P:\Dateimanagement-DOS-WIN\DOS-Dateimanagement\issFTP\
Verzeichnis Lokal:
C:kunden
Web Verzeichnis:
99.999.999.999 httpdocs\kunden\FTPDatsi\PHYSIO\*.*
START.bat
REM überflüssig zur Info
del C:\FTP_aufServer.txt
del C:\FTP_Uploads.txt
del C:\FTP_Deletes.txt
del C:\FTP_Vorhanden.txt
ftp -s:ftpopenR.src
die includierte ftpopenR.src
open 99.999.999.999
benutzer
kennwort
cd httpdocs
cd kunden
cd FTPDatsi
cd PHYSIO
lcd P:\Dateimanagement-DOS-WIN\DOS-Dateimanagement\issFTP\
dir /httpdocs/kunden/FTPDatsi/PHYSIO FTP_aufServer.txt
disconnect 99.999.999.999
bye
Produkt bisher OK ---------------------------------------------FTP_aufServer.txt:
drwxr-xr-x 2 iss24-ftp psacln 6 May 19 13:58 Ablage
-rw-r--r-- 1 iss24-ftp psacln 174 May 19 17:18 FTP_Uploads.txt
drwxr-xr-x 2 iss24-ftp psacln 4096 May 19 13:55 Images
-rw-r--r-- 1 iss24-ftp psacln 738 May 19 17:18 index_xyz.html
-rw-r--r-- 1 iss24-ftp psacln 16 May 19 13:55 testdatei
-rw-r--r-- 1 iss24-ftp psacln 738 May 19 13:58 testdatei2
weiter in der BATCH:
echo open 99.999.999.999>>C:\FTP_Uploads.txt
echo benutzer>>C:\FTP_Uploads.txt
echo kennwort>>C:\FTP_Uploads.txt
echo cd httpdocs>>C:\FTP_Uploads.txt
echo cd kunden>>C:\FTP_Uploads.txt
echo cd FTPDatsi>>C:\FTP_Uploads.txt
echo cd PHYSIO>>C:\FTP_Uploads.txt
REM das müsste umgestrickt werden, bin ich zu doof dazu:
for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i"
chcp 1252
REM FOR /F "delims=" %%i in ('dir /b "C:\kunden\*.*"') do FINDSTR /e /c:"%%~nxi" C:\FTP_aufServer.txt && echo REM OK "%%~nxi" >>FTP_Deletes.txt ??
chcp %CP%
REM FTP Copy nach server = OK:
echo disconnect 99.999.999.999>>C:\FTP_Uploads.txt
echo bye>>C:\FTP_Uploads.txt
ftp -s:FTP_Uploads.txt
ENDE BATCH
Erzeugter script = OK, Beispiel FTP_Uploads.txt:
open 99.999.999.999
benutzer
kennwort
cd httpdocs
cd kunden
cd FTPDatsi
cd PHYSIO
put "c:\kunden\save-lokal"
disconnect 99.999.999.999
bye
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143230
Url: https://administrator.de/forum/batch-lokales-verzeichnis-mit-webverzeichnis-vergleichen-uploads-und-deletes-generieren-143230.html
Ausgedruckt am: 14.05.2025 um 10:05 Uhr
9 Kommentare
Neuester Kommentar
auch dir @suelfeld einen guten Morgen und willkommen im Forum,
Sonst noch was?
Auch dir noch einen schönen Tag.
mfg
David
Sonst noch was?
Auch dir noch einen schönen Tag.
mfg
David

Hallo suelfeld,
ich wollte bei der fehlenden Begrüßung deinerseits schon fast (un-)willkommen im Forum schreiben, aber ich verkneife mir das halbwegs
Bevor ich mich mit deinem Batch beschäftige, solltest du
Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Und dies ist ein leider immer wieder benötigter Textbaustein, den jdeder der das Forum verfolgt schon mal gelesen hat.
Gruß
LotPings
ich wollte bei der fehlenden Begrüßung deinerseits schon fast (un-)willkommen im Forum schreiben, aber ich verkneife mir das halbwegs
Bevor ich mich mit deinem Batch beschäftige, solltest du
Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Und dies ist ein leider immer wieder benötigter Textbaustein, den jdeder der das Forum verfolgt schon mal gelesen hat.
Gruß
LotPings

Tja suelfeld,
der wunsch nach eine vernünftigen Formatierung kommt nicht von ungefähr, deine obiges ftp-server Verzeichnis sieht in Fester Schriftbreite etwas unglücklich aus.
Wie sollen wir da jetzt erkennen können, ob die Anzahl der Elemente (tokens) in der Zeile konstant ist, oder ob die Position des Dateinamen in den Zeilen fix ist?
Denn diese Liste muss abgearbitet werden und pro Eintrag mit {If exist }} lokal abgefragt werden. Das geht alles aber die Rahmenbedingungen müssen stimmen
Gruß
Lotpings
der wunsch nach eine vernünftigen Formatierung kommt nicht von ungefähr, deine obiges ftp-server Verzeichnis sieht in Fester Schriftbreite etwas unglücklich aus.
drwxr-xr-x 2 iss24-ftp psacln 6 May 19 13:58 Ablage
-rw-r--r-- 1 iss24-ftp psacln 174 May 19 17:18 FTP_Uploads.txt
drwxr-xr-x 2 iss24-ftp psacln 4096 May 19 13:55 Images
-rw-r--r-- 1 iss24-ftp psacln 738 May 19 17:18 index_xyz.html
-rw-r--r-- 1 iss24-ftp psacln 16 May 19 13:55 testdatei
-rw-r--r-- 1 iss24-ftp psacln 738 May 19 13:58 testdatei2
Denn diese Liste muss abgearbitet werden und pro Eintrag mit {If exist }} lokal abgefragt werden. Das geht alles aber die Rahmenbedingungen müssen stimmen
Gruß
Lotpings

Ich glaube wir haben ein Verständigungsproblem,
klicke einfach mal im folgenden Absatz auf das Unterstrichene Codetags. Das ist der Link der dich direkt zur Erklärung führt.
Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Gruß
Lotpings
klicke einfach mal im folgenden Absatz auf das Unterstrichene Codetags. Das ist der Link der dich direkt zur Erklärung führt.
Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen in der Formatierungshilfe
Gruß
Lotpings