bat文件中的FTP命令行脚本在Windows 8.1中不起作用

时间:2015-06-22 12:58:04

标签: batch-file command-line ftp windows-8.1 command-prompt

下面的脚本在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中失败,我该如何使其工作?

1 个答案:

答案 0 :(得分:1)

在调用批处理文件时,您显然没有提供参数。

%1解析为空字符串。

最终代替正确的

get file.txt C:\Database\Backups\file.txt
你打电话

get  C:\Database\Backups\

这是一种错误的语法,因为本地路径用于远程路径。

服务器正确拒绝该命令。