在批处理脚本中运行程序并等待它完成再继续

Pea*_*key 5 sftp windows-xp batch-file

我有一个非常具体的要求。我正在尝试通过使用私钥的 sftp 上传文件。我已经有一个连接到主机并上传文件的 bat 文件,但是我需要在完成后将上传的文件移动到另一个路径。

第一个 bat 文件称为start.bat. 这将连接到 sftp 服务器并上传文件。我正在使用 winscp 连接到主机。

第二个 bat 文件称为done.bat. 这会将文件从一个目录移动到另一个目录。

我正在从第一个使用 .bat 文件调用第二个 bat 文件call done.bat。我遇到的问题是,done.bat甚至在第一个批处理文件有机会进行身份验证、登录和上传之前就已完成。

我只想在上传完成后移动文件。如果由于某种原因上传失败,则不会执行第二个文件。

bat 文件位于 Windows XP 机器上。

Red*_*ick 5

用于start /wait winscp ...启动文件传输,这将暂停批处理脚本直到 winscp 退出,您可以在该行之后添加移动命令或call done.bat

 start /wait winscp ...
 call done.bat
Run Code Online (Sandbox Code Playgroud)

您应该将其与Mark Allen建议的错误检查结合起来


就我个人而言,我会使用命令行 SFTP 客户端(如随 Putty 或 OpenSSH 提供的客户端),我认为这可以避免此类问题。