下面的脚本在Windows 7中可以完美地编写FTP下载脚本:
echo user MyUSN> ftpcmd.dat
echo MyPWD>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo cd FTP-Incoming/DB_Backups>> ftpcmd.dat
::echo get %1>> ftpcmd.dat
echo get %1 C:\Database\Backups\%1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat www.fit-track.net
del ftpcmd.dat
但是在Windows 8.1中失败了:
C:\windows\system32>ftp -n -s:ftpcmd.dat www.myserver.com
Connected to myserver.com.
220 Microsoft FTP Service
ftp> user MyUSN
331 Password required for MyUSN.
230 User logged in.
ftp> bin
200 Type set to I.
ftp> cd FTP-Incoming/DB_Backups
250 CWD command successful.
ftp> get C:\Database\Backups\
200 PORT command successful.
550 The parameter is incorrect.
ftp> quit
221 Goodbye.
这是许多网站上显示的well-documented approach。
为什么这在Windows 8.1中失败,我该如何使其工作?
答案 0 :(得分:1)
在调用批处理文件时,您显然没有提供参数。
%1
解析为空字符串。
最终代替正确的
get file.txt C:\Database\Backups\file.txt
你打电话
get C:\Database\Backups\
这是一种错误的语法,因为本地路径用于远程路径。
服务器正确拒绝该命令。