中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » FTP传输文件偶有失败 怎么弄?
作者:
标题: FTP传输文件偶有失败 怎么弄? 上一主题 | 下一主题
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『楼 主』:  FTP传输文件偶有失败 怎么弄?

FTP的LOG如下!有1个文件FAILURE了。

我现在设想的功能是如果是SUCCESS则move掉,FAILURE的话则一直保留在传输目录。请问怎么实现啊?因为我后面还有个bat 会move传输文件夹的所有文件到备份目录的。所以不能区分哪个文件传输失败了,只能靠看LOG。
Transferring D:\apple\945DC\945DC_1512_XDESC_00389.TXT to 945DC_1512_XDESC_00389.TXT

FAILURE, Start:  05:43:01  End:  05:43:53 Bytes:          1588PUT 945DC_1512_XDESC_00389.TXT Mode 0

Transferring D:\apple\945DC\945DC_1512_XDESC_00391.TXT to 945DC_1512_XDESC_00391.TXT

SUCCESS, Start:  05:43:53  End:  05:43:54 Bytes:           376PUT 945DC_1512_XDESC_00391.TXT Mode 0

Transferring D:\apple\945DC\945DC_1512_XDESC_00392.TXT to 945DC_1512_XDESC_00392.TXT

SUCCESS, Start:  05:43:54  End:  05:43:55 Bytes:          1328PUT 945DC_1512_XDESC_00392.TXT Mode 0

Transferring D:\apple\945DC\945DC_1512_XDESC_00393.TXT to 945DC_1512_XDESC_00393.TXT

SUCCESS, Start:  05:43:55  End:  05:43:55 Bytes:           400PUT 945DC_1512_XDESC_00393.TXT Mode 0

Transferring D:\apple\945DC\945DC_1512_XDESC_00394.TXT to 945DC_1512_XDESC_00394.TXT

SUCCESS, Start:  05:43:55  End:  05:43:56 Bytes:         21004PUT 945DC_1512_XDESC_00394.TXT Mode 0

Transferring D:\apple\945DC\945DC_1512_XDESC_00395.TXT to 945DC_1512_XDESC_00395.TXT

SUCCESS, Start:  05:43:56  End:  05:43:56 Bytes:          5464PUT 945DC_1512_XDESC_00395.TXT Mode 0

MPUT returned 226 File retreived successfully (network bytes 5464/file bytes 5408)

2008-9-10 14:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 2 楼』:  

添加errorlevel判断文件是否传输失败.

2008-9-10 14:35
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  

把"后面那个bat"的内容贴出来看看?
在move之前,自动搜索一下ftp的log就行了。



2008-9-10 14:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

在put后面判断errorlevel吗?不行吧,ftp命令不支持这样做。



2008-9-10 14:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 5 楼』:  

bat 就是
Move D:\apple\945DC\945DC*.txt D:\apple\945DC\archive


就是这样的把 所有945DC*.txt移掉,但是如果有错的也一并移掉了。

现在设想是把失败的保留 成功的移掉。

2008-9-10 14:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  


@echo off
setlocal enabledelayedexpansion
set SrcDir=D:\apple\945DC
set DstDir=D:\apple\945DC\archive
for %%a in ("%SrcDir%\945DC*.txt") do (
  findstr /i "FAILURE" "C:\test\ftp.log"|findstr /i /c:"%%~nxa">nul
  if !errorlevel! neq 0 (
    move /y "%%a" "%DstDir%"
  )
)


   此帖被 +2 点积分    点击查看详情   
评分人:【 oozic 分数: +2  时间:2008-9-10 16:04




2008-9-10 14:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by HAT at 2008-9-10 02:58 PM:
[code]@echo off
setlocal enabledelayedexpansion
set SrcDir=D:\apple\945DC
set DstDir=D:\apple\945DC\archive
for %%a in ("%SrcDir%\945DC*.txt" do (
  findstr /i "FAILURE" & ...

非常感谢!我试试!

2008-9-10 15:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:  



  Quote:
因为LOG里肯定查的到FAILURE的 所以肯定所有的文件都移不掉^^

先测试,后评论,别说的那么肯定^_^



2008-9-10 15:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 9 楼』:  

|findstr /i /c:"%%~nxa"

恩我知道了!我把你那段给删了 所以导致出现那个问题!
非常  非常感谢!

2008-9-10 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by HAT at 2008-9-10 02:58 PM:
[code]@echo off
setlocal enabledelayedexpansion
set SrcDir=D:\apple\945DC
set DstDir=D:\apple\945DC\archive
for %%a in ("%SrcDir%\945DC*.txt" do (
  findstr /i "FAILURE" & ...

版主,不好意思。
现在这个代码又有点麻烦,因为这里检查的是ftp log里的日志文件。
如果FTP成功的 都移到了D:\apple\945DC\archive文件里了,没成功的就一直留在了D:\apple\945DC
下次没成功的文件 如果上传成功了 又会去检查原来的ftp log里的日志文件,这样它肯定又会检查到以前不成功的记录,这样就把这个问题一直留在了D:\apple\945DC了

2009-4-16 02:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 11 楼』:  

用WGET 或者CURL
支持断点续传,用起来比较放心




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-4-16 12:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 12 楼』:  @ 11# yishanju:

拜托回答问题要看清题意,人家是上传文件,而wget和curl都是下载文件。

回复楼主的新问题:你可以改下批处理,原来的批处理是检测失败的,发现的保留。你可以改成检测成功的,将成功的移过去,这样留下的就是失败的了。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2009-4-16 13:49
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by Climbing at 2009-4-16 01:49 PM:
拜托回答问题要看清题意,人家是上传文件,而wget和curl都是下载文件。

回复楼主的新问题:你可以改下批处理,原来的批处理是检测失败的,发现 ...

一语惊醒梦中人啊。谢谢。
^_^

2009-4-16 22:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: