Batch Dateien vergleichen FTP ?
Tach'en erst mal ! ! !
Ist es möglich das ich via Batch 2 Dateien anhand des Datums vergleichen kann ? Eine Datei liegt auf nem FTP und die andere lokal. Soll quasi ne Update Funktion werden. Also qusi ist ja selbst erklärend ;). Ist die Datei auf dem FTP neuer als die lokale Datei dann runterladen.
FTP Connect sowie runterladen ist ja kein Thema jedoch klappt das mit nem Vergleich ?
Gruß und euch allen hier ein schönes Wochenende
Malcom
Ist es möglich das ich via Batch 2 Dateien anhand des Datums vergleichen kann ? Eine Datei liegt auf nem FTP und die andere lokal. Soll quasi ne Update Funktion werden. Also qusi ist ja selbst erklärend ;). Ist die Datei auf dem FTP neuer als die lokale Datei dann runterladen.
FTP Connect sowie runterladen ist ja kein Thema jedoch klappt das mit nem Vergleich ?
Gruß und euch allen hier ein schönes Wochenende
Malcom
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 210716
Url: https://administrator.de/contentid/210716
Ausgedruckt am: 16.11.2024 um 13:11 Uhr
17 Kommentare
Neuester Kommentar
Hallo malcomxcia.
IMO wirst du dann wohl 2 mal auf den Server zugreifen müssen. Das erste Mal ziehst du dir eine Liste der Dateien mit dem (FTP!) DIR Command und legst sie lokal in einer Datei ab. Diese Liste verarbeitest du im Batchcode und extrahierst Dateinamen und zugehöriges Datum und vergleichst mit deinen lokalen Dateien. Nun kannst du dich ein zweites Mal einloggen und nur die neueren Dateien herunterladen.
Das Ganze ist also mit dem Windows-eigenen FTP Tool unglaublich umständlich ... Soweit ich weiß kommt es dann auch noch auf den Server an, in welchem Format die Liste bei dir ankommt und welches Datumsformat dabei herauskommt. Dann Datum- und Zeitwerte in Batch zu vergleichen ist noch mal eine ganz andere Geschichte
Grüße
rubberman
IMO wirst du dann wohl 2 mal auf den Server zugreifen müssen. Das erste Mal ziehst du dir eine Liste der Dateien mit dem (FTP!) DIR Command und legst sie lokal in einer Datei ab. Diese Liste verarbeitest du im Batchcode und extrahierst Dateinamen und zugehöriges Datum und vergleichst mit deinen lokalen Dateien. Nun kannst du dich ein zweites Mal einloggen und nur die neueren Dateien herunterladen.
Das Ganze ist also mit dem Windows-eigenen FTP Tool unglaublich umständlich ... Soweit ich weiß kommt es dann auch noch auf den Server an, in welchem Format die Liste bei dir ankommt und welches Datumsformat dabei herauskommt. Dann Datum- und Zeitwerte in Batch zu vergleichen ist noch mal eine ganz andere Geschichte
Grüße
rubberman
Hallo malcomxcia.
Aber du kannst ja mal posten, welches Format ein FTP DIR bei dir ausspuckt, dann können wir zusammen was erarbeiten.
Ein Batchschnippsel dazu könnte etwa so aussehen:
Die Variablen ftpHost, ftpUser, ftpPassword und ftpRemoteDir musst du entsprechend vorher definieren. Die Liste solltest du dann in "dir.txt" finden.
Grüße
rubberman
hast Du da nen Tipp für mich und kennst was brauchbares ?
Nein, leider nicht. Für die paar Aktionen, die ich mal auf einem FTP Share zu erledigen habe reicht mir das Windows Tool (oder ich erledige das gleich per Hand).Aber du kannst ja mal posten, welches Format ein FTP DIR bei dir ausspuckt, dann können wir zusammen was erarbeiten.
Ein Batchschnippsel dazu könnte etwa so aussehen:
>"%temp%\test.ftp" (
echo open %ftpHost%
echo %ftpUser%
echo %ftpPassword%
echo dir "%ftpRemoteDir%" "%~dp0dir.txt"
echo disconnect
echo bye
)
ftp.exe -i -s:"%temp%\test.ftp"
del "%temp%\test.ftp"
Grüße
rubberman
Hallo malcomxcia,
liegt wahrscheinlich an deinem Browser.
Der normale Windows-Zeilenumbruch besteht aus 2 Zeichen, CarriageReturn und LineFeed (0D 0A wenn du dir das in einem HEX Editor ansiehst). Ich habe gehört, dass manche Browser sich auf eines der beiden Zeichen beschränken.
Versuch's mal aus dem Internetexplorer zu kopieren, der ist ja auf jeder Windowskiste dabei. (Nutze dabei den "Quelltext" Link rechts oberhalb des Codes, wenn es ein Batchcode aus diesem Forum ist.)
Grüße
rubberman
liegt wahrscheinlich an deinem Browser.
Der normale Windows-Zeilenumbruch besteht aus 2 Zeichen, CarriageReturn und LineFeed (0D 0A wenn du dir das in einem HEX Editor ansiehst). Ich habe gehört, dass manche Browser sich auf eines der beiden Zeichen beschränken.
Versuch's mal aus dem Internetexplorer zu kopieren, der ist ja auf jeder Windowskiste dabei. (Nutze dabei den "Quelltext" Link rechts oberhalb des Codes, wenn es ein Batchcode aus diesem Forum ist.)
Grüße
rubberman
Hallo malcomxcia,
anders gesagt, du hast die Probleme mit Zeilenumbrüchen, wenn du Wget nutzt? Ist dann sicher ein Fall von RTFM
Ich nutze Wget nicht, aber ein Blick in die Doku hat mich folgendes finden lassen:
rubberman
anders gesagt, du hast die Probleme mit Zeilenumbrüchen, wenn du Wget nutzt? Ist dann sicher ein Fall von RTFM
Ich nutze Wget nicht, aber ein Blick in die Doku hat mich folgendes finden lassen:
Wget also supports the type feature for ftp urls. By default, ftp documents are retrieved in the binary mode (type ‘i’), which means that they are downloaded unchanged. Another useful mode is the ‘a’ (ASCII) mode, which converts the line delimiters between the different operating systems, and is thus useful for text files. Here is an example:
ftp://host/directory/file;type=a
Grüßeftp://host/directory/file;type=a
rubberman
Hallo Malcom,
ich verwende einen Dateivergleich auf Datumsebene. Hierbei wird die Datei auf dem Netzlaufwerk gegen die Lokal liegende Datei überprüft.
set CHECK="Angabe des Pfades der Datei auf dem Netzlaufwerk"
set AGAINST="Angabe des Pfades der lokalen Datei"
:cancel
exit
:install
was auch immer.
Welches FTP Programm verwendet Du?
ich verwende einen Dateivergleich auf Datumsebene. Hierbei wird die Datei auf dem Netzlaufwerk gegen die Lokal liegende Datei überprüft.
set CHECK="Angabe des Pfades der Datei auf dem Netzlaufwerk"
set AGAINST="Angabe des Pfades der lokalen Datei"
FOR /f "delims= " %%a in ('dir %CHECK% /t:c^|findstr /i /l "setup.exe"') do (
FOR /f "delims= " %%b in ('dir %AGAINST% /t:c^|findstr /i /l "setup.exe"') do (
IF /i %%b GEQ %%a ( echo %time%: daily build version: %%a server and %%b local are equal >> %LOGFILE% & goto cancel
) ELSE echo %time%: daily build version: %%a server and %%b local are not equal >> %LOGFILE% & goto install
)
)
:cancel
exit
:install
was auch immer.
Welches FTP Programm verwendet Du?
Hallo malcomxcia.
Ich kann dir da nicht mehr weiterhelfen, da ich, wie schon gesagt, nicht mit Wget arbeite. Der Thread ist nun auch langsam alt genug, dass er keine große Beachtung mehr findet.
Mach doch noch mal einen neuen Thread unter Windows Tools & Utilities auf und erkläre dein Problem mit Wget und/oder verweise auf diesen Thread. Ggf. sind dort die User unterwegs, die die nötige Erfahrung mit wget mitbringen...
Grüße
rubberman
Ich kann dir da nicht mehr weiterhelfen, da ich, wie schon gesagt, nicht mit Wget arbeite. Der Thread ist nun auch langsam alt genug, dass er keine große Beachtung mehr findet.
Mach doch noch mal einen neuen Thread unter Windows Tools & Utilities auf und erkläre dein Problem mit Wget und/oder verweise auf diesen Thread. Ggf. sind dort die User unterwegs, die die nötige Erfahrung mit wget mitbringen...
Grüße
rubberman