ftp - 如何在批处理脚本中捕获 ftp 错误代码?

标签 ftp batch-file

我有一个有点相关但不同的问题 here .

我有一个批处理脚本( *.bat 文件),例如:

@ftp -i -s:"%~f0"&GOTO:EOF
open ftp.myhost.com
myuser
mypassword
!:--- FTP commands below here ---
lcd "C:\myfolder"
cd  /testdir
binary
put "myfile.zip"
disconnect
bye

基本上,这是一个将 zip 文件上传到 ftp 站点的脚本。我的问题是,上传操作有时会失败(远程ftp不可用,“myfile.zip”不存在,上传操作中断等等),当这种不幸的事情发生时,我想要我的 bat 文件返回 1 ( exit 1 )。

如果我的上传不成功那就太好了,ftp 会抛出一个异常(是的,就像 C++ 中的异常),我会有一个捕获所有异常来捕获它然后 exit 1 ,但我认为这在批处理脚本中可用。

在这里做我需要的最好方法是什么?

最佳答案

您可以将输出重定向到日志文件,当 ftp session 完成时,可以解析该文件。

@ftp -i -s:"%~f0" > log.txt & GOTO :parse
open ftp.myhost.com
myuser
mypassword
!:--- FTP commands below here ---
lcd "C:\myfolder"
cd  /testdir
binary
put "myfile.zip"
disconnect
bye

:parse
for /F "delims=" %%L in (log.txt) Do (
  ... parse each line
)

关于ftp - 如何在批处理脚本中捕获 ftp 错误代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158295/

相关文章:

c# - 通过 FtpWebRequest 上传到 FTP 后无法删除文件

Windows批处理脚本下载昨天的文件

javascript - Gulp Vinyl-ftp 无法上传较新且不同大小的文件

powershell - 使用WinSCP .NET程序集在FTP服务器上生成新文件和已修改文件的列表

java - Zip 文件上传到服务器时损坏

python - 如何从窗口 xp/7 中的批处理文件调用/运行多个 python 脚本

Windows .bat 脚本无法读取!文本中的字符该怎么办?

c++ - 用 C++ 编写简单的类似 FTP 的客户端/服务器应用程序

powershell - 在 CMD 批处理文件中使用 FlashWindowEx

c++ - 使用 ROS2 环境变量创建 C++ 项目