Wie lade ich eine Datei mit einem Batch-Skript auf einen FTP-Server hoch?
Ich habe eine Batchdatei namens FTP_automation.bat
erstellt, die den folgenden Code enthält.
SET MyPath=E\PGP\test_pg
ftp
open 142.245.30.165 21
TESTA9MS
test11
binary
put %MyPath%
quit
Pause
Wenn ich FTP_automation.bat
ausführe, wird die Datei nicht hochgeladen, an die ich den Parameter übergebe.
Das Skript stoppt nach ftp
, das in der Batchdatei erwähnt wird, und stellt keine Verbindung zu der IP-Adresse und Portnummer her, die ich in der Batchdatei übergeben habe.
Wenn ich diese Befehle manuell eingegeben habe, hat es perfekt funktioniert. Welche Korrektur soll ich damit machen code?
1 answers
Sie müssen die Befehle ftp
in eine separate Datei einfügen. Sie können keine Zeilen, die Sie sonst im Terminal eingeben, in die Datei .bat
einfügen und erwarten, dass sie sich identisch verhält. Die Datei .bat
kann nur Windows-Befehle enthalten. Wenn Sie den Befehl ftp
aus der Batchdatei ausführen, wartet er auf seine Befehle. Es kennt die Datei .bat
nicht und kann die Befehle von dort nicht lesen.
Also lege deine Befehle in eine separate Textdatei (zB ftp.txt
).
open 142.245.30.165 21
TESTA9MS
test11
binary
put E\PGP\test_pg
quit
Und führen Sie es aus dem .bat
- Datei wie:
ftp -s:ftp.txt
pause
Wenn Sie wirklich einen dynamischen Dateinamen (aus einer Umgebungsvariablen) verwenden müssen, müssen Sie die Textdatei im laufenden Betrieb erstellen. Das ftp
unterstützt keine Variablen.
Wenn Sie einen besseren FTP-Client verwenden, können Sie möglicherweise beide Befehle in der Batchdatei haben und die Umgebungsvariablen verwenden.
Zum Beispiel mit WinSCP:
set MyPath=E\PGP\test_pg
winscp.com /command ^
"open ftp://TESTA9MS:[email protected]" ^
"put ""%MyPath%""" ^
"exit"
pause
Für eine Einführung in das Scripting mit WinSCP finden:
https://winscp.net/eng/docs/guide_automation
Es gibt auch eine Anleitung zum Konvertieren von Windows FTP Script in WinSCP script.
(ich bin der Autor von WinSCP)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-02-26 08:20:41