我正在尝试下面的代码从桌面到主机的ftp文件。
@echo off
Setlocal enabledelayedexpansion
Set >set
setlocal
SET infile=
SET outfile=
SET defuser=
SET defpwd=
:startover
IF "%defuser%"=="" (
set /p defuser="Enter User ID: "
)
IF "%defpwd%"=="" (
set /p defpwd="Enter Password: "
)
set /p infile="Enter the path name:"
set /p outfile="Enter the target filename:"
@echo **************entering ftp step**************
echo user %defuser%> ftpcmd.dat
echo %defpwd%>> ftpcmd.dat
echo ascii>> ftpcmd.dat
echo lcd>> ftpcmd.dat
echo put %infile% '%outfile%'>> ftpcmd.dat
echo bye>> ftpcmd.dat
@echo ***********************execute ftp**************
ftp -n -s:ftpcmd.dat x.xx.xxx.xxx
@echo ****************executed ftp***********************
exit/b然而,ftp -n -s: ftpcmd.dat从来没有执行过,我的意思是,ftp从来没有发生过,相反,代码返回到输入用户ID。我不知道为什么它不服从退出命令。
对此的任何建议都将是有帮助的。
你好,维什
发布于 2019-04-16 22:36:31
根据我的评论,这里有一个您的文件的示例,这样您就不必先移动、重命名或删除当前目录中的ftp.com、ftp.exe、ftp.bat、ftp.cmd、ftp.vbs、ftp.vbe、ftp.js、ftp.jse、ftp.wsf、ftp.wsh、ftp.msc等任何实例。
@Echo Off
Set "defuser="
Set "defpwd="
:startover
If Not Defined defuser Set /P "defuser=Enter User ID: "
If Not Defined defpwd Set /P "defpwd=Enter Password: "
Set "infile="
Set /P "infile=Enter the path name: "
If Not Defined infile GoTo startover
Set "outfile="
Set /P "outfile=Enter the target filename: "
If Not Defined outfile GoTo startover
Echo *************** entering ftp step ***************
( Echo user %defuser%
Echo %defpwd%
Echo ascii
Echo lcd
Echo put %infile% '%outfile%'
Echo bye
)>"ftpcmd.dat"
Echo ****************** execute ftp ******************
"%__AppDir__%ftp.exe" -n -s:ftpcmd.dat x.xx.xxx.xxx
Echo ****************** executed ftp ******************
Exit /Bhttps://stackoverflow.com/questions/55709374
复制相似问题