在FTP上搜索文件的步骤

在FTP上搜索文件的步骤,ftp,batch-file,Ftp,Batch File,我想使用if exist filename-else语句,使用FTP批处理脚本,查找FTP上是否存在文件,如下所示: ftp.txt open ftp.mysite.com ftp.txt username ftp.txt password ftp.txt if exist filename (echo file exists) else (echo file doesn't exist) ftp.txt quit ftp -s:ftp.txt 上面的if exist行不起作用。 还有其他搜索

我想使用if exist filename-else语句,使用FTP批处理脚本,查找FTP上是否存在文件,如下所示:

ftp.txt open ftp.mysite.com
ftp.txt username
ftp.txt password
ftp.txt if exist filename (echo file exists) else (echo file doesn't exist)
ftp.txt quit
ftp -s:ftp.txt
上面的if exist行不起作用。
还有其他搜索方法吗?

不要执行FTP脚本中的逻辑

从批处理文件调用ftp.txt脚本。在ftp.txt脚本中,只需对文件执行GET操作。如果文件在那里,它将被下载到本地目录。否则,它不会。调用FTP脚本后,使用标准DOS批处理命令检查本地目录中是否存在该文件,即:

@echo off

:FETCHFILE
ftp -s:ftp.txt
IF EXIST filetocheckfor.txt (
   REM the file was there, so do something
) ELSE
   echo Trying again...
   REM ping "sleep" would go here
   GOTO FETCHFILE
)
如果您想在重试中增加延迟,请通过ping假IP地址执行“睡眠”,如本文所述:
不要执行FTP脚本中的逻辑

从批处理文件调用ftp.txt脚本。在ftp.txt脚本中,只需对文件执行GET操作。如果文件在那里,它将被下载到本地目录。否则,它不会。调用FTP脚本后,使用标准DOS批处理命令检查本地目录中是否存在该文件,即:

@echo off

:FETCHFILE
ftp -s:ftp.txt
IF EXIST filetocheckfor.txt (
   REM the file was there, so do something
) ELSE
   echo Trying again...
   REM ping "sleep" would go here
   GOTO FETCHFILE
)
如果您想在重试中增加延迟,请通过ping假IP地址执行“睡眠”,如本文所述:

.bat文件足够原始。DOS/Windows ftp脚本甚至更原始(即限制性极强)。强烈建议:编写一个VBScript(或Perl或Python或VB.Net脚本)来执行FTP。。。并处理逻辑。bat文件足够原始。DOS/Windows ftp脚本甚至更原始(即限制性极强)。强烈建议:编写一个VBScript(或Perl或Python或VB.Net脚本)来执行FTP。。。这是正确的,因为如果我对一个不存在的文件进行get,它会在本地创建它,但会为空。不幸的是,在我的例子中,这个文件只是一个标志文件,如果它存在于ftp服务器上,它将是空的,所以我无法区分它是否真的存在。顺便说一句,为什么这个问题如此复杂。查看文件是否存在似乎是一个相当常见的请求。FTP需要更新:)这是否正确,因为如果我对一个不存在的文件执行get,它将在本地创建该文件,但将为空。不幸的是,在我的例子中,这个文件只是一个标志文件,如果它存在于ftp服务器上,它将是空的,所以我无法区分它是否真的存在。顺便说一句,为什么这个问题如此复杂。查看文件是否存在似乎是一个相当常见的请求。FTP需要更新:)