SFTP 传输文件

SFTP 传输文件

我创建了一个 bat 文件来将文件从 PC 传输到服务器,手动输入命令时一切正常,但我不知道如何在脚本中转换,因为它会在输入密码请求后停止

cd c:\users\user\documents\transfer

sftp [email protected]

put *.txt 

问题是,当系统要求输入密码时,我输入密码,但它会停止,我需要记下脚本的其余部分

有什么办法可以让脚本在输入密码后继续运行吗?

答案1

密码不是问题,问题在于脚本不会模仿键盘输入。它们以串行方式运行命令,就脚本而言,命令sftp仍在运行– 它显示了自己的输入提示,但脚本无法利用它做任何事情。只有当“sftp”退出时,命令put才会在主 Cmd.exe 解释器中执行,而不是在 sftp 中执行。

  • 使用该sftp -b选项将单独的脚本传递给“sftp”程序。

    cd/d c:\users\user\documents\transfer
    sftp -b c:\whatever\putall.txt [email protected]
    
  • 使用scp命令。(在最新的 OpenSSH 版本中,它甚至是基于 SFTP 的。)

    cd/d c:\users\user\documents\transfer
    scp *.txt [email protected]:
    
  • 将命令作为明确的输入传输到管道sftp(我不确定这是否适用于 Windows)。

    cd/d c:\users\user\documents\transfer
    echo put *.txt | sftp [email protected]
    

相关内容