DOS-script tp-FTP von einem remote-server und kopieren Sie die Dateien zum lokalen Ordner
Schreiben brauche ich eine einzelne dos-Skript, welches zuerst FTP von einem entfernten server auf meinen lokalen Verzeichnis und dann kopieren Sie diese Dateien in einen anderen Ordner innerhalb der lokalen Maschine. Der Grund hinter der zweite Schritt ist, den Zielordner Pfad ist abhängig davon, ob das SYSTEM Prozessor 32-bit oder 64-bit.
Habe ich zwei getrennte Skripte, die funktionieren jetzt. Aber wenn ich mir diese Zusammenstellung in einem einzigen Skript, es nicht mit der ftp-Eingabeaufforderung. Hier ist das script, welches ich verwende -
@echo off
:MAIN
SETLOCAL ENABLEDELAYEDEXPANSION
set winver=%PROCESSOR_ARCHITECTURE%
rmdir c:\batch\temp
mkdir c:\batch\temp
goto :ftpbegin
:ftpbegin
@ftp -i -s:"%~f0"&GOTO:EOF
open x.y.z.a
<userid>
<password>
!:-----FTP commands here -----
lcd C:\batch\temp
cd CGServices\Uploads
binary
mget "*.psl"
mget "*.PST"
mget "*.psy"
get abc.ini
get def.pmd
disconnect
bye
:eof
exit /b
:findwin
if %winver% ==x86 (goto :copywin32) else (goto :copywin64)
:copywin32
echo "inside copywin32"
<do the copy files here>
:copywin64
<do copy files here>
exit /b 0
Jedoch das ftp-script zu verursachen scheint eine Pause während der Ausführung der zweite Teil von meinem Programm, da es den Aufruf des Programms in einer Schleife, ftp-prompt. Also, keiner der dos-Befehle übersetzt werden, auf FTP-prompt.
Jede Hilfe, wie Sie diese erreichen in einem einzigen Skript für diese wird sehr geschätzt.
Dank,
Sanders
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den FTP-Befehl AFAIK nicht verarbeiten kann die Befehle aus der Kommandozeile Lesen, ohne die ftp-Befehle aus einer externen Datei. Ich in der Regel laden Sie eine windows-version von wget, und es funktioniert gut für uns, vielleicht möchten Sie einen Blick auf, dass.
Hier ist die Anleitung für wget http://www.editcorp.com/Personal/Lars_Appel/wget/v1/wget_7.html
beispielsweise
Nach dem aufrufen
ftp
Befehl sagen Sie Ihrem Skript springen ':EOF'. Sie können nicht verwenden:EOF
label zum springen innerhalb einer batch-Datei.Goto :EOF
im Grunde bedeutet "springe zum Ende der Datei", die ist in der Regel das gleiche wie der Aufrufexit /b
. Sie können auch anrufengoto :EOF
aus einem Unterprogramm. In diesem Fall bedeutet es "dies ist das Ende des Unterprogramms". Für mehr info, siehegoto /?
undcall /?
Weil in http://ftp.exe Sie sind mit Ihrem .bat-Datei als ftp-Befehl Skript alle Zeilen vor
open x.y.z.a
geben Sieinvalid command
Nachrichten, also wäre es gut, zu minimieren die Anzahl der Zeilen, bevor Sie den FTP-Befehl blockieren.Ihr Skript sollte wie folgt Aussehen: