Ich habe eine Batchdatei mit dem Namen erstellt, FTP_automation.bat
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 aktiv bin FTP_automation.bat
, wird die Datei nicht hochgeladen. Ich übergebe den Parameter.
Das Skript stoppt, ftp
worauf in der Batchdatei hingewiesen wird, und stellt keine Verbindung zu der IP-Adresse und der Portnummer her, die ich in der Batchdatei übergeben habe.
Wenn ich diese Befehle manuell eingab, funktionierte sie einwandfrei. Welche Korrektur soll ich an diesem Code vornehmen?
windows
command-line
batch
ftp
batch-file
abhayk
quelle
quelle
Antworten:
Sie müssen die
ftp
Befehle in einer separaten Datei ablegen. Sie können keine Zeilen, die Sie anderweitig eingeben, in die.bat
Datei einbinden und erwarten, dass sie sich identisch verhalten. Die.bat
Datei kann nur Windows-Befehle enthalten. Wenn Sie denftp
Befehl in der Batchdatei ausführen, wartet er auf seine Befehle. Es kennt die.bat
Datei nicht und kann daher die Befehle von dort nicht lesen.Legen Sie also Ihre Befehle in einer separaten Textdatei ab (z
ftp.txt
. B. ).Und führen Sie es aus der
.bat
Datei wie folgt aus:Wenn Sie wirklich einen dynamischen Dateinamen (aus einer Umgebungsvariablen) verwenden müssen, müssen Sie die Textdatei sofort erstellen. Das
ftp
unterstützt keine Variablen.Wenn Sie einen besseren FTP-Client verwenden, können Sie möglicherweise sowohl die Befehle in der Batchdatei als auch die Umgebungsvariablen verwenden.
Zum Beispiel mit WinSCP :
Eine Einführung in die Skripterstellung mit WinSCP finden Sie unter:
https://winscp.net/eng/docs/guide_automation
Es gibt auch eine Anleitung zum Konvertieren von Windows FTP-Skripten in WinSCP-Skripten .
(Ich bin der Autor von WinSCP)
quelle