【问题标题】:FTP command keeps running on command prompt. It uses a dat file as inputFTP 命令一直在命令提示符下运行。它使用 dat 文件作为输入
【发布时间】:2012-11-21 10:58:13
【问题描述】:

BAT文件代码如下:

set SCRIPT_NAME=FTP_SCRIPT.DAT
@echo open "Server"> %SCRIPT_NAME%
@echo "User">> %SCRIPT_NAME%
@echo "Password">> %SCRIPT_NAME%
@echo bin>> %SCRIPT_NAME%
@echo hash>> %SCRIPT_NAME%

@echo mput export.csv>> %SCRIPT_NAME%
@echo y>> %SCRIPT_NAME%
@echo quit>> %SCRIPT_NAME%

@ftp -n -s:%SCRIPT_NAME% 

它会正确创建FTP_SCRIPT.DAT 文件,但是命令提示符保持空白并且根本不会出现FTP。我第一次使用批处理脚本。所以不太了解它的细节。这个FTP 命令将如何工作?

【问题讨论】:

  • ftp 命令中去掉@ 看看它给出了什么错误,使用@ 将抑制有价值的调试消息! :)

标签: windows batch-file ftp


【解决方案1】:

我在您的脚本中没有看到任何错误,但请确保您在打开命令中输入正确的 ftp 方向:“xxx.xxxx.xxxx.xxxx.:PortNum”

试试这个:

SET "SCRIPT_NAME=FTP_SCRIPT.DAT"

(

 ECHO open "Server:Port"
 ECHO "User"
 ECHO "Password"
 ECHO bin
 ECHO hash
 ECHO mput "export.csv"
 ECHO y
 ECHO close

)>"%SCRIPT_NAME%"

%WINDIR%\system32\FTP.exe -n -s:"%SCRIPT_NAME%"

【讨论】:

  • 这个脚本也一直在命令提示符下运行,我必须关闭它。它创建 dat 文件,但在 FTP 命令之后它继续运行。请帮忙。
  • 我已经编辑了我的答案,只需使用“关闭”命令返回 CMD 而不是仅存在于 ftp 服务器的“退出”,您也可以尝试“再见”命令。
  • 我将此文件保存在 windows 的 system32 文件夹中,它可以正常工作。但是如何将脚本保留在桌面上并且仍然可以工作。
  • cd C:\WINDOWS\system32 SET "SCRIPT_NAME=FTP_SCRIPT.dat" ( ECHO open "Server" ECHO "User" ECHO "Password" ECHO bin ECHO hash ECHO cd "Remote directory" ECHO mput "文件名" ECHO y ECHO 关闭 ECHO bye ) >"%SCRIPT_NAME%" ftp -s:%SCRIPT_NAME%>>ank.log del %SCRIPT_NAME%
  • 是的,使用您上次评论中的绝对路径。您的环境 PATH 变量有问题。我已经更新了我的答案,如果对你有帮助,请不要忘记接受我的答案,请参阅规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
相关资源
最近更新 更多