bat脚本登陆ftp服务器

用bat脚本登录ftp服务器,下载指定文件。

第一次脚本,有问题,你发现了么?

由于每个">>"重定向符号之前都习惯用空格(python style),导致写道ftp.txt中的每一行最后都有一个空格,所以ftp登录时报用户名密码不正确
···
@echo off 请输入一个参数:本次迭代编号,如k0225(k表示2019年,l表示2020年,以此类推)
echo clouder > ftp.txt
echo engine >> ftp.txt
echo cd PowerDude/thinclient/%1 >> ftp.txt
echo binary >> ftp.txt
echo mget OneCloud_PowerDude_Setup_x86_V* >> ftp.txt
echo y >> ftp.txt
echo quit >> ftp.txt
ftp -d -s:ftp.txt 192.168.1.170
del ftp.txt
···
遇到问题 老是登录不上
···
C:\Users\clouder\Desktop\yanna>ftp -s:ftp.txt 192.168.1.170
连接到 192.168.1.170。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.1.170:(none)):
331 Please specify the password.

530 Login incorrect.
登录失败。
ftp> cd PowerDude/thinclient/k0225
530 Please login with USER and PASS.
ftp> binary
530 Please login with USER and PASS.
ftp> mget OneCloud_PowerDude_Setup_x86_V*
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
530 Please login with USER and PASS.
找不到远程文件列表。
ftp> y
无效命令。
ftp> quit
221 Goodbye.
···
最后修改为,注意">>"之前不要有空格

@echo 请输入一个参数:本次迭代编号,如k0225(k表示2019年,l表示2020年,以此类推)
echo clouder>> ftp.txt
echo engine>> ftp.txt
echo cd PowerDude/thinclient/%1>> ftp.txt
echo binary>> ftp.txt
echo mget OneCloud_PowerDude_Setup_x86_V*>> ftp.txt
echo y>> ftp.txt
echo quit>> ftp.txt
ftp -d -s:ftp.txt 192.168.1.170
del ftp.txt

解析:

  1. @ 表示不运行后面的内容,echo是回显,相当于print,“@echo”一般用来写操作说明,help等信息
  2. echo 表示回显,相当于print语句
  3. ,>> 重定向符号,把左边的内容重定向到右边的位置,>表示重写,>>表示追加

  4. %1 表示命令行第一个参数,%0 即脚本本身名字
  5. ftp -d表示调试模式,可以看得更细的内容,方便排错,-s 指定包含 FTP 命令的文本文件,命令在 FTP 启动后自动运行。
  6. del ftp.txt 删除文件
posted @ 2019-03-06 15:34  2019勇往直前  阅读(2949)  评论(0编辑  收藏  举报