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
解析:
- @ 表示不运行后面的内容,echo是回显,相当于print,“@echo”一般用来写操作说明,help等信息
- echo 表示回显,相当于print语句
-
,>> 重定向符号,把左边的内容重定向到右边的位置,>表示重写,>>表示追加
- %1 表示命令行第一个参数,%0 即脚本本身名字
- ftp -d表示调试模式,可以看得更细的内容,方便排错,-s 指定包含 FTP 命令的文本文件,命令在 FTP 启动后自动运行。
- del ftp.txt 删除文件