FTP bat 文件中的命令行脚本在 Windows 8.1 中不起作用
FTP command-line scripting in bat file doesn't work in Windows 8.1
下面的脚本在 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
解析为空字符串。
最终而不是正确
get file.txt C:\Database\Backups\file.txt
你打电话给
get C:\Database\Backups\
语法错误,因为本地路径用于远程路径。
服务器正确地拒绝了命令。
下面的脚本在 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
解析为空字符串。
最终而不是正确
get file.txt C:\Database\Backups\file.txt
你打电话给
get C:\Database\Backups\
语法错误,因为本地路径用于远程路径。
服务器正确地拒绝了命令。