标题: FTP传输文件偶有失败 怎么弄?
[打印本页]
作者: oozic
时间: 2008-9-10 14:31
标题: 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)
作者: huahua0919
时间: 2008-9-10 14:35
添加errorlevel判断文件是否传输失败.
作者: HAT
时间: 2008-9-10 14:38
把"后面那个bat"的内容贴出来看看?
在move之前,自动搜索一下ftp的log就行了。
作者: HAT
时间: 2008-9-10 14:39
在put后面判断errorlevel吗?不行吧,ftp命令不支持这样做。
作者: oozic
时间: 2008-9-10 14:42
bat 就是
Move D:\apple\945DC\945DC*.txt D:\apple\945DC\archive
就是这样的把 所有945DC*.txt移掉,但是如果有错的也一并移掉了。
现在设想是把失败的保留 成功的移掉。
作者: HAT
时间: 2008-9-10 14:58
@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%"
)
)
作者: oozic
时间: 2008-9-10 15:06
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"<img src="images/smilies/face-wink.png" align="absmiddle" border="0"> do (
findstr /i "FAILURE" & ...
非常感谢!我试试!<img src="images/smilies/face-laugh.png" align="absmiddle" border="0">
作者: HAT
时间: 2008-9-10 15:22
因为LOG里肯定查的到FAILURE的 所以肯定所有的文件都移不掉^^
先测试,后评论,别说的那么肯定^_^
作者: oozic
时间: 2008-9-10 15:29
|findstr /i /c:"%%~nxa"
恩我知道了!我把你那段给删了 所以导致出现那个问题!
非常 非常感谢!
作者: oozic
时间: 2009-4-16 02:48
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"<img src="images/smilies/face-wink.png" align="absmiddle" border="0"> do (
findstr /i "FAILURE" & ...
版主,不好意思。
现在这个代码又有点麻烦,因为这里检查的是ftp log里的日志文件。
如果FTP成功的 都移到了D:\apple\945DC\archive文件里了,没成功的就一直留在了D:\apple\945DC
下次没成功的文件 如果上传成功了 又会去检查原来的ftp log里的日志文件,这样它肯定又会检查到以前不成功的记录,这样就把这个问题一直留在了D:\apple\945DC了<img src="images/smilies/face-raspberry.png" align="absmiddle" border="0">
作者: yishanju
时间: 2009-4-16 12:32
用WGET 或者CURL
支持断点续传,用起来比较放心
作者: Climbing
时间: 2009-4-16 13:49
标题: @ 11# yishanju:
拜托回答问题要看清题意,人家是上传文件,而wget和curl都是下载文件。
回复楼主的新问题:你可以改下批处理,原来的批处理是检测失败的,发现的保留。你可以改成检测成功的,将成功的移过去,这样留下的就是失败的了。
作者: oozic
时间: 2009-4-16 22:22
Originally posted by Climbing at 2009-4-16 01:49 PM:
拜托回答问题要看清题意,人家是上传文件,而wget和curl都是下载文件。
回复楼主的新问题:你可以改下批处理,原来的批处理是检测失败的,发现 ...
一语惊醒梦中人啊。谢谢。
^_^