标题: [网络连接] 批处理从FTP下载文件为何出错? [打印本页]
作者: ayue 时间: 2011-3-31 16:14 标题: 批处理从FTP下载文件为何出错?
各位大侠:
由于小弟的工作原因,每天都要从公司的FTP服务器上下载一些数据供平时工作中分析使用,为了提高工作效率,小弟写了个批处理指令每天按时执行,这样到办公室后就不用再自己下载了!但是奇怪的事情是小弟我写的批处理指令可以成功下载文件,而且下载后提示接收了大概6M字节的数据,但是在本地查看该文件时,却发现其文件大小为0,请各位大侠帮帮小弟我看看是什么原因!我截了两张图,具体的请大家看看附件就知道了!!
作者: CrLf 时间: 2011-3-31 16:45
楼主的ftp代码呢?
作者: ayue 时间: 2011-3-31 16:57
回2楼,我的FTP代码其实很简单,主要就是用到一条语句 "ftp -i -s:command.txt remote_IP"
其中command.txt文件里主要是登陆用户名和密码还有要下载的文件列表
作者: TX_kakashi 时间: 2011-3-31 18:48
是不是文件被空文件覆盖掉了?lz还是上传个完整代码来看看吧
作者: ayue 时间: 2011-4-1 09:26
下面是小弟的代码,还请各位指教,我试着用这个批处理下载其他的文件都是正常,但就是下载想要的文件时就会出现下载下来的文件大小为0的情况,我再想是不是因为文件属性的问题,因为我用total command 下载这些文件时发现跟我用批处理下载下来的文件名不一样,用批处理下载下来的文件总是会比原文件名少几个字符,但是指令执行完后确实提示下载了很多的流量!!!!!- @echo off
- SETLOCAL ENABLEDELAYEDEXPANSION
- set Log_Path=D:\
- set Remote_IP=#########
- set path=%path%;d:\program files\winrar\
-
- ::取昨天的日期
- set yy=%Date:~0,4%
- set mm=%Date:~5,2%
- set dd=%Date:~8,2%
- set /a od=!dd!-1
- if !od!==0 call :dd0
- if !mm!==0 call :mm0
- set /a dd=od
- set "dd=0!dd!"
- set "dd=!dd:~-2!"
- set "mm=0!mm!"
- set "mm=!mm:~-2!"
- set yymmdd=!yy!!mm!!dd!
-
- ::从文件STSFilelist.txt中判断并创建所需要的文件列表到文件WantedFileList.txt
- echo eric>>%Log_Path%WantedFileList.txt
- echo solaris7>>%Log_Path%WantedFileList.txt
- echo type ASCII>>%Log_Path%WantedFileList.txt
- echo cd /var/opt/ericsson/sgw/outputfiles/apgfiles/sts/>>%Log_Path%WantedFileList.txt
- for /f %%j in (%Log_Path%STSFilelist.txt) do (
- set filename=%%j
- set FileTime=%%j
- set FileTime=!FileTime:~10,4!
- if "!filename:~-12,5!"=="CZBSC" (
- if "!filename:~1,8!"=="%yymmdd%" (
- if "!filename:~-5,4!"=="1000" (
- findstr "!FileTime!" D:\TimeFilter.txt>nul
- if !ERRORLEVEL!==0 echo %%j>>mget %Log_Path%WantedFileList.txt
- ) else (
- if "!filename:~-5,4!"=="1003" (
- findstr "!FileTime!"
-
- D:\TimeFilter.txt>nul
- if !ERRORLEVEL!==0 echo
-
- mget %%j>>%Log_Path%WantedFileList.txt
- )
- )
- )
- )
- )
- echo close>>%Log_Path%WantedFileList.txt
- echo quit>>%Log_Path%WantedFileList.txt
-
- ::下载所需要的文件并压缩
- cd ftp\
- ftp -i -s:%Log_Path%WantedFileList.txt %Remote_IP%
-
- for "useback" %%j in (`dir /a-d /b`) do (
- winrar a -df -m5 STS%yymmdd% %%j
- )
- move STS%yymmdd%.rar Log_Path%
-
-
- :dd0
- set /a mm=!mm!-1
- for %%a in (1 3 5 7 8 10 12)do set %%add=31
- set /a pddd=!yyyy!*10/4
- set pd2d=!pddd:~-1,1!
- set 2dd=28
- if !pd2d!==0 set 2dd=29
- for %%b in (4 6 9 11)do set %%bdd=30
- set od=!%mm%dd!
- goto :eof
- :mm0
- set /a yy=!yy!-1
- set mm=12 && set od=31
- goto :eof
复制代码
作者: ayue 时间: 2011-4-1 09:36
这是用total command 下载下来的同一个文件,可以发现两个文件名不一样,这是不是导致用批处理下载下来的文件大小为0的原因呢?还请各位大侠指教啊!!!!
作者: qyjlyj521 时间: 2011-4-2 09:39
学习了,不过看不懂
作者: zz100001 时间: 2011-4-2 15:28
本帖最后由 zz100001 于 2011-4-2 15:36 编辑
这种情况一般在下载压缩文档的时候容易出现,把你的第三行改成复制代码
或者复制代码
作者: ayue 时间: 2011-4-2 16:28
回zz100001:
我也试过用二进制进行下载,可是结果还是一样!真是不知道问题到底出现在哪里,还请各位大侠多多帮忙啊!!!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |