Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

FTP Verzeichnis vergleichen

Frage Entwicklung Batch & Shell

Mitglied: Flauschbobbel

Flauschbobbel (Level 1) - Jetzt verbinden

21.07.2008, aktualisiert 22.07.2008, 6232 Aufrufe, 5 Kommentare

Hallo Zusammen,

ich möchte ein FTP-Verzeichnis auslesen und es mit einem Verzeichnis auf meinem Windows-Client vergleichen.
Ich habe bereits hier etwas gestöbert und auch einen Ansatz gefunden.

Ich mache eine FTP-Verbindung und lese das entsprechende Verzeichnis aus und schreibe es in eine Datei (C:\Scripts\FTP_AuslesenListe.txt)

Das FTP-Script sieht wie folgt aus:
01.
  
02.
open 123.123.123.123 
03.
username 
04.
passwort 
05.
ls 
06.
cd /Photo 
07.
dir /Photo C:\Scripts\FTP_AuslesenListe.txt 
08.
disconnect 123.123.123.123 
09.
bye
Das funktioniert einwandfrei. Das Ergebnis sieht wie folgt aus:
01.
  
02.
drwxr-xr-x   2 tester ftp         32768 Dec 31  1979 2005-12-27  Weihnachten 2005 
03.
drwxr-xr-x   2 tester ftp         32768 Dec 31  1979 2005-12-30  Weihnachten 2005 
04.
drwxr-xr-x   2 tester ftp         32768 Dec 31  1979 2006-01-01  Weihnachten 2005-2006 
05.
drwxr-xr-x   2 tester ftp         32768 Dec 31  1979 2006-01-11  JM+CM Testbilder 
06.
...
Nun möchte ich mittes einer FOR-Schleife das Verzeichnis auf meinem Client lesen und mit der obigen Liste vergleichen.
Die fehlenden Verzeichnisse möchte ich mittels einem FTP-Commandfile, das ich mich zur Laufzeit zusammenbaue, auf den FTP-Server bringen

Folgender Befehl
01.
  
02.
FOR /F %%i in ('dir /b "E:\--- B I L D E R ---\JM Fotos\*.*"') do FINDSTR /e /c:"%%~nxi" C:\Scripts\FTP_AuslesenListe.txt || echo put %%i >>temp.txt
schlägt aber fehl, es wird aber nur der erste Teil des Verzeichnisses ausgelesen:

Inhalt der temp.txt
01.
  
02.
put 2005-12-27  
03.
put 2005-12-30  
04.
put 2006-01-01  
05.
...
Meine Verzeichnisse beginnen mit "yyy-mm-dd Verzeichnisname". Zwischen dem Datum und dem Verzeichnisname sin 2 "Leerzeichen".
Zudem werden nicht nur die fehlende Verzeichnisse, sondern alle Verzeichnisse gelistet.
Könnt Ihr mir weiterhelfen?

Danke,
Flauschbobbel
Mitglied: bastla
21.07.2008 um 23:11 Uhr
Hallo Flauschbobbel!

Versuch es so:
01.
FOR /F "delims=" %%i in ('dir /b "E:\--- B I L D E R ---\JM Fotos\*.*"') do FINDSTR /e /c:"%%~nxi" C:\Scripts\FTP_AuslesenListe.txt || echo put "%%i" >>temp.txt
Grüße
bastla
Bitte warten ..
Mitglied: Flauschbobbel
22.07.2008 um 00:21 Uhr
Hallo bastla,

es funktioniert, jedoch habe ich noch ein kleines Problem dabei:
Bei meinem Auslesen in der Liste "FTP_AuslesenListe.txt" erhalte ich die Informationen einwandfrei mit Umlauten (ä,Ü,ö).
Mittels dem obigen DIR-Befehl werden die Umlaute in den Verzeichnisnamen (in der Liste temp.txt) nicht korrekt dargestellt, was dazu führt, das er ein Verzeichnis nicht finden kann und somit das "falsche", also mit den Sonderzeichen nochmals kopieren will

Beispiel in Temp.txt:
...
put "2007-06-06 Anbau Rckseite, Info fr Caspar"
...

Hast Du hierzu ggf. noch eine Idee?

Grüße,
Flauschbobbel
Bitte warten ..
Mitglied: bastla
22.07.2008 um 00:30 Uhr
Hallo Flauschbobbel!

Sollte mit
01.
for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i" 
02.
chcp 1252 
03.
FOR /F "delims=" %%i in ('dir /b "E:\--- B I L D E R ---\JM Fotos\*.*"') do FINDSTR /e /c:"%%~nxi" C:\Scripts\FTP_AuslesenListe.txt || echo put "%%i" >>temp.txt 
04.
chcp %CP%
klappen.

Grüße
bastla
Bitte warten ..
Mitglied: Flauschbobbel
22.07.2008 um 00:45 Uhr
Danke bastla!

Es funktioniert. Kannst Du mir aber bei Gelegenheit die Settings erklären?
Wenn ich es richtig interpretiere liest du die aktuelle codepage aus (in die Variable %CP%).
Dann setzt du sie auf 1252 ??? Woher hast Du die Info, für was steht 1252?
Befehl ist wieder klar..
... und danach wird die CP wieder auf den alten Wert gesetzt.

Klasse!
Danke,
Flauschbobbel
Bitte warten ..
Mitglied: bastla
22.07.2008 um 00:58 Uhr
Hallo Flauschbobbel!

Üblicherweise wird in der CMD-Shell CP 850 verwendet, aber, um flexibel zu bleiben, wird (wie Du richtig erkannt hast) einfach die aktuelle Codepage zwischengespeichert und dann wieder gesetzt.

Woher hast Du die Info, ...
Was für eine Frage - natürlich von Biber ...

... für was steht 1252?
Windows ANSI - kannst Du zB hier finden.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...