grmg2010
Goto Top

Ftp.exe in Windows 10 und Windows 7

Moin,

ich schreibe aktuell ein Skript, welches automatisch Dateien updaten soll. (Die Rechner sind autonom und nicht im normalen Netzwerk) Hauptsächlich soll das Skript für Windows 10 sein, leider aber auch für einige Windows 7 Systeme.

Da ein Teil des Updateprozesses beinhaltet, Dateien per FTP zu uploaden, benutze ich die integrierte ftp.exe.

Dafür erstelle ich im Skript eine Datei, die später von ftp.exe verarbeitet werden sollen. Der Aufruf erfolgt wie folgt;
ftp.exe -s:D:\zuverabeitendeDatei.txt

Die Datei wird wie von Microsoft angegeben in UTF8 erstellt. Allerdings bereitet das bereits Problemen, unter Windows 7 wird bei Erstellen der Datei ein Zeichen eingefügt, welches nicht verarbeitet werden kann. Nutze ich ein anderes Format, ist es kein Problem.

Das eigentlich Problem ist aber folgendes: Unter Windows 10 funktioniert der Aufruf einwandfrei aus dem Skript heraus. Unter Windows 7 nicht, die Datei wird nicht abgearbeitet.
Interessanterweise funktioniert es, sobald ich das obengenannte per Hand in einer cmd oder PowerShell ausführe. Lediglich die Abarbeitung innerhalb des Skriptes ist nicht möglich.

Ich habe auch versucht, ftp.exe in einem separaten Prozess augferufen:
Start-Process ftp.exe  -ArgumentList "-s:D:\zuverabeitendeDatei.txt"   
Leider funktioniert auch dieses nicht, in einer separaten Shell ausgeführt, funktioniert es wiederum.

Hat jemand eine Idee, weshalb es zu unterschiedlichen Ergebnissen kommt? Gibt es sonst noch eine weitere Möglichkeit FTP Uploads per Skript durchzuführen? Dabei müssen bereits in Windows enthaltenen Funktionen/Programme ausreichen, zusätzliche Software darf nicht benutzt werden.

Mit freundlichen Grüßen

Content-ID: 43913981224

Url: https://administrator.de/contentid/43913981224

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

Globetrotter
Globetrotter 28.09.2023 um 20:12:47 Uhr
Goto Top
Hi grmg2010!
Für solche Sachen bedienst Du Dich bitte bei WiNSCP.. das kannst Du komplett scriptbasierend steuern..
Der FTP-Client von Windows ist da leider der absolut falsche Ansatz - der taugt gar nüscht ;(

Gruss Globe!
ForgottenRealm
ForgottenRealm 29.09.2023 um 08:12:07 Uhr
Goto Top
Zudem unterstützt die ftp.exe kein (S)FTP, also nur komplett unverschlüsselt. Nimm WinScp.
insidERR
insidERR 29.09.2023 um 08:59:29 Uhr
Goto Top
Bevor ich FreeFileSync kannte, hatte ich mir für ähnliche Dateiuploads selbst was in .NET programmiert.
Jetzt, würde ich den nehmen. Da kann man sich solche Automatismen einfach zusammen klicken, als Batch abspeichern und über Aufgabenplanung ausführen.
Synchronisiere damit eine NAS im Ausland.
7907292512
7907292512 29.09.2023 aktualisiert um 09:19:41 Uhr
Goto Top
grmg2010
Lösung grmg2010 29.09.2023 um 19:17:58 Uhr
Goto Top
WinSCP hatte ich auch bereits gefunden, leider ist aber eine zusätzlich Software nicht möglich. Diese würde eine Validierung benötigen.

Eine unverschlüsselte Verbindung ist in diesem Fall nicht schlimm, bei der Netzwerkverbindung handelt es sich um eine Punkt-zu-Punkt Verbindung mit lediglich zwei Teilnehmern.

Ich habe es mit ein wenig testen wie folgt hinbekommen.
Start-Process cmd.exe -ArgumentList "/c ftp.exe -s:D:\zuverabeitendeDatei.txt"  

Vielleicht funktioniert es ja doch nicht so wie erwartet und es ist möglich doch auf WinSCP zu setzen.

Vielen dank an alle Beteiligten.