2017-02-15 3 views
1

Ich habe eine Batch-Datei erstellt, um Dateien von einem FTP-Server auf ein freigegebenes Laufwerk zu kopieren. Ich bin neu beim Schreiben von Skripten. Wenn ich die .bat-Datei ausführe, erhalte ich einen Fehler "Quellordner nicht gefunden". Wenn ich WINSCP verwende, kann ich in das Verzeichnis gehen und die Dateien ohne Probleme sehen.Batch-Datei wird keine Dateien kopieren

@Echo Off 
ftp xxxxxx.org xxx 
Set _UserName=xxxxxxxx 
Set _Password=xxxxxxxx 
set Source=ftp://ftp.xxxxxx.org/LOPE/mobiledoc   
set Target=Z:\Scanned_Documents\LOPE 
set FileList=Z:\Scanned_Documents\LOPE\FileList_LOPE.idx 

if exist Z:\Scanned_Documents\LOPE\NUL echo "Folder already exists" 
if not exist Z:\Scanned_Documents\LOPE\NUL echo "Folder does not exist" 
if not exist "%Source%" echo Source folder "%Source%" not found & goto Exit 
if not exist "%FileList%" echo File list "%FileList%" not found & goto Exit 
if not exist "%Target%" md "%Target%" 


for /F "delims=" %%a in ('type "%FileList%"') do copy "%Source%\%%a" "%Target%" 

:Exit 
echo. 
echo press the Space Bar to close this window. 
pause > nul
+0

Ich habe ein paar Dinge geändert: Ich entfernte das Echo. Ich habe die Ziel- und Dateilisten-Anweisungen in Anführungszeichen gesetzt. Ich ging auch in die Dateilistendatei und fügte das Verzeichnis dem Dateinamen in der Datei fileList hinzu. – user2576682

+0

Der Fehler, den ich erhalte, besagt, dass der Dateiname, der Verzeichnisname oder die Volumesyntax falsch sind. – user2576682

Antwort

0

Es gibt ein paar Probleme mit Ihrem Skript. Während Sie es debuggen, würde ich Ihnen empfehlen, die erste Zeile @Echo off vorübergehend auskommentieren, damit Sie sehen können, was vor sich geht.

Zu Ihrer spezifischen Frage: die if not existwird für ein Vorhandensein eines Dateiobjekts auf einem FTP-Speicherort nicht überprüfen. Es funktioniert nur mit dem Dateisystem.