中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 19:06
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助: 如何实现从ftp自动下载更新文件 查看 1,457 回复 4
楼 主 求助: 如何实现从ftp自动下载更新文件 发表于 2008-03-15 10:32 ·  中国 江苏 无锡 电信
新手上路
积分 8
发帖 3
注册 2008-03-14 22:13
18年会员
UID 112986
性别 男
状态 离线
如何用bat 自动从远程ftp 自动下载更新的程序,同时把本地的过期的文件删除,并且执行最新的程序? 自动登入远程到ftp 和下载 偶会写了。 关键现在不知道如何 比较远程文件是否比本地文件更新 ,(一般来说远程文件如果更新 它的文件名会变成xxx(日期).exe),求教了
2 发表于 2008-03-15 14:07 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
把远程服务器上的文件名里面的日期格式贴出来
把本机的日期格式贴出来
3 发表于 2008-03-15 15:22 ·  中国 江苏 无锡 电信
新手上路
积分 8
发帖 3
注册 2008-03-14 22:13
18年会员
UID 112986
性别 男
状态 离线
都是(mmdd).exe
4 自己今天学习后写的,有点笨 发表于 2008-03-15 21:52 ·  中国 江苏 无锡 电信
新手上路
积分 8
发帖 3
注册 2008-03-14 22:13
18年会员
UID 112986
性别 男
状态 离线
自己今天学习后写的,有点笨 请大家多指教 现在还不知道如何下载后自动执行还望各位大大 指教 不胜感激了。
@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 ]
5 发表于 2008-03-18 16:25 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
wget 来 代替 ftp
论坛跳转: