![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 23:42 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » U盘下FTP自动下载批处理程序无法读取FTP登录文件信息 |
| 可打印版本 720 / 1 |
| 第1楼 oasislee | 发表于 2009-06-01 23:36 |
| 新手上路 发帖 2 积分 2 | |
|
U盘下FTP自动下载批处理程序无法读取FTP登录文件信息 各位高手你们好,最近公司有个需求就是用户直接插入U盘到电脑后,运行U盘上批处理文件就可以直接将FTP文件下载到 本地U盘,从而实现文件自动下载。我的在网上找到的方法是写2个文件,一个是批处理主文件 getfile.bat 运行,另一个是FTP登录文件 getfile.ftp。此方法我本人在本地硬盘已经实现了,但是我的目标是所有的读写运行下载文件操作都在U盘上完成。我现在碰到的问题是,在批处理文件运行到读取登录FTP时读不出U盘上的getfile.ftp文件,说无法读取文件。可是DOS执行窗口显示出的文件路径都是正确的,因此我百思不得其解。请高手指点,以下为源代码及执行窗口截图。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @echo off for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do ( set DriveU=%%a ) echo.%DriveU% set f=%DriveU% set BASE=%f% set BASE_PATH= %BASE%\video set LOG_FILE= %BASE_PATH%\ftpgetfile.log set FLAG_FILE=%BASE_PATH%\tmp.tmp ##因要和另外一个程序通讯,所以用了这个状态标志文件,程序开始时写0进去,结束时再修改为1。这样另一个程序就可以判断何时文件接收结束,并开始处理文件。 set SAVE_PATH=%BASE_PATH% set TMP_PATH= %BASE_PATH%\temp set REMOTE_PATH=/wwwroot REM 程序开始运行 echo =========================================================== >> %LOG_FILE% set DATET=%date%%time% echo 程序开始运行,时间:%DATET% >> %LOG_FILE% if not exist %BASE_PATH% ( mkdir %BASE_PATH% ) echo %BASE_PATH% echo 测试! pause>nul if not exist %SAVE_PATH% ( mkdir %SAVE_PATH% ) echo %SAVE_PATH% echo 测试! pause>nul if not exist %TMP_PATH% ( mkdir %TMP_PATH% ) echo %TMP_PATH% echo 测试! pause>nul cd %TMP_PATH% echo 0 > %FLAG_FILE% if not exist %SAVE_PATH% ( echo 无法找到标志文件%SAVE_PATH% >> %LOG_FILE% goto _END ) ftp -s:"%BASE_PATH%\getfile.ftp" >> %LOG_FILE% echo %BASE_PATH%\getfile.ftp echo 本次获得的文件如下:>> %LOG_FILE% dir /B %TMP_PATH%\S*.swf > %TMP_PATH%\filelist.tmp ##本次接收的文件列表,供movefile.bat删除文件的标识 dir /B %TMP_PATH%\*.swf >> %LOG_FILE% move /Y %TMP_PATH%\*.swf %SAVE_PATH%\ FOR /F "usebackq delims=" %%i IN (`type filelist.tmp`) DO call %BASE_PATH%\movefile.bat %%i %LOG_FILE% %REMOTE_PATH% :_END echo 1 > %FLAG_FILE% del %TMP_PATH%\filelist.tmp set DATET=%date%%time% echo 程序运行结束,时间:%DATET% >> %LOG_FILE% echo =========================================================== >> %LOG_FILE% echo 文件更新已经完成 请您按下任意键或者 选择Ctrl+c 组合键退出! pause>nul &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& [ Last edited by oasislee on 2009-6-1 at 23:49 ] |
|
| 第2楼 oasislee | 发表于 2009-06-02 00:20 |
| 新手上路 发帖 2 积分 2 | |
|
我顺便把我的getfile.ftp文件给拿出来大家看看
open 192.168.1.120 user sy syit601 prompt on cd /wwwroot mget *.swf bye quit exit [ Last edited by oasislee on 2009-6-2 at 03:13 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |