1. 请教高手,用批处理命令FTP自动下载文件。
① 如果我理解没错,远端目录,最深层的那个子目录(名称是日期)的那个,每天都是变的;你要下载的是里面的文件(不含子目录);文件下载到本地E:dzyl下,而且目录也是按服务器上的日期创建。
② 批处理固定每天运行,从服务器前一天的目录下载文件。
如果理解正确,那么下面的代码可以实现(已测试过),ip地址你需要修改!你的操作系统如果是英文,也需呀修改(具体看脚本中的提示)
@echooff&
set"ftp_site=19.6.5.34"
set"ftp_id=pracq"
set"ftp_pwd=123456"
set"ftp_remote_dir=/ftp/bos/at/pracq/"
set"ftp_local_dir=E:dzyl"
:100
set"ftpcmd={{%random%}}.ftp"
ifexist%ftpcmd%goto100
::英文系统用下面这个,把下面一行中的::去除
::set"today=%date:~6,4%%date:~0,2%%date:~3,2%"
::中文系统用下面这个,如果是英文,在下面一行句首添加::
set"today=%date:~0,4%%date:~5,2%%date:~8,2%"
settoday=!today:~0,4!-!today:~4,2!-!today:~-2!
call:Date2Day!today!1Yesterday
setftp_remote_dir=!ftp_remote_dir!!yesterday!
>%ftpcmd%echoopen!ftp_site!
>>%ftpcmd%echo!ftp_id!
>>%ftpcmd%echo!ftp_pwd!
>>%ftpcmd%echocd!ftp_remote_dir!
>>%ftpcmd%echobye
for/f%%iin('ftp-s:%ftpcmd%')doif{%%i}=={550}(
!
gotoend
)
setftp_local_dir=!ftp_local_dir!!yesterday!
md!ftp_local_dir!1>nul2>&1
ifnotexist!ftp_local_dir!(
!
gotoend
)
>%ftpcmd%echoopen!ftp_site!
>>%ftpcmd%echo!ftp_id!
>>%ftpcmd%echo!ftp_pwd!
>>%ftpcmd%echocd!ftp_remote_dir!
>>%ftpcmd%echolcd!ftp_local_dir!
>>%ftpcmd%echobinary
>>%ftpcmd%echopromptn
>>%ftpcmd%echomget*.*
>>%ftpcmd%echobye
set/acount=0
for/f%%iin('ftp-s:%ftpcmd%')do(
if{%%i}=={226}set/acount=!count%+1
)
if!count!gtr0(
echoDone.!count!file^(s^)downloaded.
)else(
echoNofilehasbeendownloaded.
)
gotoend
:Date2Day
::call:Date2Day2007-11-122Day
@echooff&setlocal
for/f"tokens=1-3delims=/-:,"%%ain('echo/%~1')do(
set/ayy=%%a,mm=100%%b%%100,dd=100%%c%%100
)
set/az=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set/aj=j/5+dd+y*365+y/4-y/100+y/400-2472633
set/ai=j-%~2,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set/ad=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set/add=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if%mm%LSS10setmm=0%mm%)&(if%dd%LSS10setdd=0%dd%)
endlocal&set%~3=%yy%%f%%mm%%f%%dd%&
goto:eof
:end
ifexist%ftpcmd%(typenul>%ftpcmd%&&del/f/q%ftpcmd%1>nul2>&1)
endlocal&@echoon
测试运行结果:
Done.5file(s)downloaded.
2. 批处理下载ftp文件到当前文件夹,求高人指点
需要做一个批处理,一个ftp脚本,放到一个目录下,双击startftp.bat使用。
1、第一个保存为startftp.bat
ftp-s:ftp.ftp
2、第二个保存为ftp.ftp,具体代码根据实际情况而定,第一行open后面是ftp地址,第二行user后面是用户名,第三行填密码,之后就是需要使用的ftp命令了。
open10.0.0.1
userusername
password
get*
bye
3. 请教DOS高手,用批处理实现ftp自动下载
@echooff
setftpulr=填写ftp地址
setftpuser=填写ftp用户
setftppwd=填写ftp密码
setftpport=填写ftp端口,默认21
echoopen%ftpulr%%ftpport%>openFtp.txt
echo%ftpuser%>>openFtp.txt
echo%ftppwd%>>openFtp.txt
echopromptoff>>openFtp.txt
echomget*>>openFtp.txt
echobye>>openFtp.txt
echoTransportdata......
ftp-s:openFtp.txt
delopenFtp.txt
pause
4. 批处理来完成FTP文件自动下载
前几天笔者遇到一个需求,在windows平台下使用ftp来远程获取交换机的配置文件。鉴于每一次都需要在命令行里面手动输入,过程繁琐,于是想着使用脚本来完成这个重复性的工作,实现自动化。python的ftplib库也可以解决这个问题,但是笔者未来和其他bat脚本揉在一起,直接windows平台下使用批处理bat来完成。
ftp -s可以指定包含ftp命令的文本文件,ftp启动后这些命令将自动运行。
主批处理文件:ftp_main.bat
ftp命令批处理文件:ftp_task.bat,文件放置于D盘下。
除了FTP之外,date修改电脑日期,time修改电脑时间,echo ^G测试电脑声音。注意,“^G”是在命令行中使用ctrl + g输入的,可以使用echo ^G > test.txt来获取这个字符。
最后这个脚本东凑西凑,界面如下:
5. 批处理命令从ftp上下载子目录中文件
先建一个ftp命令文件:如
get.ftp
open
192.168.0.2
FTPUSERNAME
#账号
FTPPASSWORD
#密码
get
/SharedFile/Log
/1.txt
bye
然后再建批处理文件
ftp
-s:d:\test\get.ftp
6. 求ftp下载文件的批处理
rem只能下载所有文件不能下载子文件夹,如下载子文件夹推荐用第三方命令行工具wget
@echooff
for/l%%iin(1,1,200)do(
echoopen192.168.1.%%i:3721>ftpftp.txt
echoanonymous>>ftpftp.txt
echo.>>ftpftp.txt
echocd/touchelf/res/nba>>ftpftp.txt
echoprompt>>ftpftp.txt
echolcdd:ftp\%%i>>ftpftp.txt
echobin>>ftpftp.txt
echomget*>>ftpftp.txt
echobye>>ftpftp.txt
ftp-sftpftp.txt)
7. 批处理ftp下载更新
@echooff
rem指定FTP用户名
setftpUser=FTPUSERNAME
rem指定FTP密码
setftpPass=FTPPASSWORD
rem指定FTP服务器地址
setftpIP=192.168.0.2
rem指定待下载的文件位于FTP服务器的哪个目录
setftpFolder=/SharedFile/Log
rem指定从FTP下载下来的文件存放到本机哪个目录
setLocalFolder=C:/temp
setftpFile=%temp%/TempFTP.txt
>"%ftpFile%"(
echo,%ftpUser%
echo,%ftpPass%
echocd"%ftpFolder%"
echolcd"%LocalFolder%"
echobin
echomget*.*
echobye
)
startftp-v-i-s:"%ftpFile%"%ftpIP%
8. 请问该怎么写FTP 自动下载批处理
计算机操作系统为UNIX操作系统,IP地址为10.30.15.3,需进行文件传输的目录为C:\data,登录用户名为Anonymous,口令为123456。从本机到对方机接收文件操作方法如下。 第一步,先新建一个文本: user usernamepasswordcd d:/down/eegold/public/temp/mysqlbackup/eegoldpromptlcd D:\usr\local\mysql4\data\eegoldmput *.* cd d:/down/eegold/public/temp/mysqlbackup/ftpse lcd D:\usr\local\mysql4\data\ftpsemput *.* cd d:/down/eegold/public/temp/mysqlbackup/mysql lcd D:\usr\local\mysql4\data\mysqlmput *.* quit将该文本保存为bk.ftp存放到目录 D:\usr\local\mysql4\data\bk.ftp 。该文件只要扩展名为ftp,前缀可任意取名。目录也不一定要在根目录,主要以方便为主。文本中Bin为用二进制码格式传输文件,如用ASCII码格式传输文件可去掉该行。如为本机向对方机发送文件,则只要将文本中的Mget替换成Mput即可。这之后,再新建另一个文本: ftp -n -s:"D:\usr\local\mysql4\data\bk.ftp" 新建完毕后将该文本保存为1.bat后存放在硬盘任何分区或软盘中均可。这样,第一步工作已经完成,您随时可以执行该批处理文件进行FTP文件的传输。 第二步,将该该批处理文件放在“任务计划”中设定自动运行。方法是:打开“开始”菜单“程序”下“附件”中的“系统工具”,点击“任务计划”,执行“添加任务计划”,按“任务计划向导”提示将该批处理文件添加到任务计划中,并指定执行周期,之后再设下密码后即完成。从此,计算机会根据您的设定,自动周期性地进行文件接收或发送,不再需要您动一下手指,真正做到它工作,您休息。
9. 批处理bat从FTP下载文件
你的命令本身体就存在问题
1.在cmd中输入ftp打开ftp.exe进入ftp
ftp>open ftp--ip
ftp>uesr
ftp>pass
ftp>dir (显示所有文件/目录)
ftp>mget cf*.* D:\test (多文件下载要用mget,居然没人发现。。。)
ftp>y (确认下载)
ftp>bye (退出ftp)
exit
2.登陆ftp可直接在cmd中输入ftp ftp--ip
3.open 是ftp的命令啊 批处理只是调用ftp.exe 可不是说ftp是cmd中的。。。
4.求分啊。。。