中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助: 如何实现从ftp自动下载更新文件
作者:
标题: 求助: 如何实现从ftp自动下载更新文件 上一主题 | 下一主题
wxgstest
新手上路





积分 8
发帖 3
注册 2008-3-14
状态 离线
『楼 主』:  求助: 如何实现从ftp自动下载更新文件

如何用bat 自动从远程ftp 自动下载更新的程序,同时把本地的过期的文件删除,并且执行最新的程序?  自动登入远程到ftp 和下载 偶会写了。 关键现在不知道如何 比较远程文件是否比本地文件更新 ,(一般来说远程文件如果更新 它的文件名会变成xxx(日期).exe),求教了

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





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

把远程服务器上的文件名里面的日期格式贴出来
把本机的日期格式贴出来

2008-3-15 14:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wxgstest
新手上路





积分 8
发帖 3
注册 2008-3-14
状态 离线
『第 3 楼』:  

都是(mmdd).exe

2008-3-15 15:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxgstest
新手上路





积分 8
发帖 3
注册 2008-3-14
状态 离线
『第 4 楼』:  自己今天学习后写的,有点笨

自己今天学习后写的,有点笨 请大家多指教 现在还不知道如何下载后自动执行还望各位大大 指教 不胜感激了。
@echo off
set BASE=e:  
set BASE_PATH=e:\ftptest
set SAVE_PATH=%BASE_PATH%\save
set TMP_PATH=%BASE_PATH%\temp
set LOG_FILE=%BASE_PATH%\ftpgetfile.log
set DATET=%date%%time%
echo 程序开始运行,时间:%DATET% >> %LOG_FILE%
if not exist %BASE_PATH% (
   mkdir %BASE_PATH%
)
if not exist %SAVE_PATH% (
   mkdir %SAVE_PATH%
)
if not exist %TMP_PATH% (
   mkdir %TMP_PATH%
)
ftp -n -s:"%BASE_PATH%\getfile.ftp" >> %LOG_FILE%
echo 本次获得的文件如下:>> %LOG_FILE%
dir /B E:\ftptest\temp\ >> %LOG_FILE%
:: 先下载 然后进行文件名称比较(假设只有一个文件哟,实际情况也只更新一个文件。这儿自己没有考虑第一次下载的情况)
cd %TMP_PATH%\
for /F "delims==" %%i IN ('dir /b') do set m=%%~ni
cd %SAVE_PATH%\
for /F "delims==" %%j IN ('dir /b') do set n=%%~nj
if %m% == %n% (goto _exit) else goto _update
:_update
::这儿没有考虑第一次下载的情况
del /f/q E:\ftptest\save\*.exe 2>nul
move /y E:\ftptest\temp\*.exe E:\ftptest\save\ >nul
set DATET=%date%%time%
echo 程序运行结束,时间:%DATET% >> %LOG_FILE%
echo =========================================== >> %LOG_FILE%
exit
:_exit
echo same file
del /f /q E:\ftptest\temp\*.exe
set DATET=%date%%time%
echo 程序运行结束,时间:%DATET% >> %LOG_FILE%
echo =========================================== >> %LOG_FILE%
exit
以下是getfile.ftp
==========================================
::getfile.ftp
open 192.168.1.100
user test
test
bin
cd /test/test
prompt off
lcd e:\ftptest\temp
mget *.exe
bye
exit
==========================================

[ Last edited by wxgstest on 2008-3-15 at 09:54 PM ]

2008-3-15 21:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 5 楼』:  

wget 来 代替 ftp

2008-3-18 16:25
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: