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, 6251 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Verzeichnisse vergleichen mit Zwischenschritt (22)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Linux
gelöst Vergleich zwischen Distributionen. Mögliche Kriterien? (18)

Frage von hansleitner zum Thema Linux ...

Grafikkarten & Monitore
Grafikkarten Vergleich & Grafikkarten Rangliste

Link von joemix zum Thema Grafikkarten & Monitore ...

Batch & Shell
gelöst Zeitangabe mit aktueller Angabe vergleichen (14)

Frage von Peter32 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...