中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 15:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » FTP传输文件偶有失败 怎么弄? 查看 1,392 回复 12
楼 主 FTP传输文件偶有失败 怎么弄? 发表于 2008-09-10 14:31 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 25
注册 2007-11-28 16:26
18年会员
UID 104069
性别 男
状态 离线
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)
2 发表于 2008-09-10 14:35 ·  中国 江苏 苏州 中移铁通
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
添加errorlevel判断文件是否传输失败.
3 发表于 2008-09-10 14:38 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
把"后面那个bat"的内容贴出来看看?
在move之前,自动搜索一下ftp的log就行了。
4 发表于 2008-09-10 14:39 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
在put后面判断errorlevel吗?不行吧,ftp命令不支持这样做。
5 发表于 2008-09-10 14:42 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 25
注册 2007-11-28 16:26
18年会员
UID 104069
性别 男
状态 离线
bat 就是
Move D:\apple\945DC\945DC*.txt D:\apple\945DC\archive


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

现在设想是把失败的保留 成功的移掉。
6 发表于 2008-09-10 14:58 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@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%"
)
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
oozic +2 2008-09-10 16:04
7 发表于 2008-09-10 15:06 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 25
注册 2007-11-28 16:26
18年会员
UID 104069
性别 男
状态 离线
Originally posted by HAT at 2008-9-10 02:58 PM:
@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" & ...



非常感谢!我试试!
8 发表于 2008-09-10 15:22 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
因为LOG里肯定查的到FAILURE的 所以肯定所有的文件都移不掉^^

先测试,后评论,别说的那么肯定^_^
9 发表于 2008-09-10 15:29 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 25
注册 2007-11-28 16:26
18年会员
UID 104069
性别 男
状态 离线
|findstr /i /c:"%%~nxa"

恩我知道了!我把你那段给删了 所以导致出现那个问题!
非常 非常感谢!
10 发表于 2009-04-16 02:48 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 25
注册 2007-11-28 16:26
18年会员
UID 104069
性别 男
状态 离线
Originally posted by HAT at 2008-9-10 02:58 PM:
@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了
11 发表于 2009-04-16 12:32 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
用WGET 或者CURL
支持断点续传,用起来比较放心

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
12 @ 11# yishanju: 发表于 2009-04-16 13:49 ·  中国 河北 保定 移动
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
拜托回答问题要看清题意,人家是上传文件,而wget和curl都是下载文件。

回复楼主的新问题:你可以改下批处理,原来的批处理是检测失败的,发现的保留。你可以改成检测成功的,将成功的移过去,这样留下的就是失败的了。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
13 发表于 2009-04-16 22:22 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 25
注册 2007-11-28 16:26
18年会员
UID 104069
性别 男
状态 离线
Originally posted by Climbing at 2009-4-16 01:49 PM:
拜托回答问题要看清题意,人家是上传文件,而wget和curl都是下载文件。

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



一语惊醒梦中人啊。谢谢。
^_^
论坛跳转: