用批处理到FTP上提取文件,找不到目录的时候如何跳过

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:40:02
程序大概是这样的
open 10.111.126.222
user user good
cd ..
cd ..
Dir
lcd d:\data\box1
if "%%cd /output/data/on/FILES090926_86%%" not equ 1 go to way1(找不到此目录时跳转到提取下一个文件夹)
get a1.data
get a2.data
get a3.data
get a4.data
way1:lcd d:\shuju\box2
if "%%cd /output/data/on/FILES090926_87%%" not equ 1 go to way2
get a1.data
get a2.data
get a3.data
get a4.data
way2:lcd d:\shuju\HBSM32A
if "%%cd /output/data/on/FILES090926_88%%" not equ 2 go to way3
get a1.data
get a2.data
get a3.data
get a4.data
way3:
我的程序目的是提取FTP下指定目录下的制定文件,当有的目录不存在时,就不提取文件,直接提取下一个文件夹下的文件。我不太会用IF这个语句,程序中应该有很多问题和错误,请高手帮忙。以前的程序没有IF,只是直接cd打开目录,然后提取,这样如果中间某一目录没打开,还会继续执行GET语句,提取的是上一个文件夹下的文件(因为每个目录下的文件名都相同),会出现偏差,即D:/shuju下的两个BOX文件内容一摸一样。总之,不知道在找不到指定目录的时候怎么跳过,请哪位大侠帮帮忙,这里先谢了:)
需要判断FTP下的文件夹是否存在

已经开启了FTP对话,怎么会有IF命令?先开启FTP,dir目录并生成一个列表,退出FTP.再判断列表内容,最后下载。

@echo off

ftp -A ftp.microsoft.com
dir reskit\nt4\alpha\pss\ c:\ls.txt
bye

find "winat.exe" c:\ls.txt && call:loop1

:loop2
ftp -A ftp.microsoft.com
get reskit\win2000\sc.zip
bye
exit

:loop1
ftp -A ftp.microsoft.com
get reskit\nt4\alpha\winat\winat.exe
bye
exit

判断目录是否存在winat.exe,存在下载,不存在下载另外一个文件。多看FTP -help。

楼主,你的批处理我不太懂,但你说到的判断目录是否存在问题,判断本机我是这样判断的,希望对你会有帮助:
@echo off
if not exist "%cd%\1" (echo 没有) else echo 有
pause

判断当前目录下是否存在1这个文件夹,存在显示‘有’,不存在显示‘没有’

另goto指令中间好像没有空格,如:goto way1