我可以使用 shell 脚本而不是 WinSCP 将文件从 Windows 传输到 Unix 吗?

我可以使用 shell 脚本而不是 WinSCP 将文件从 Windows 传输到 Unix 吗?

我想自动化 WinSCP 过程,所以我想编写一个与 WinSCP 功能相同的 shell 脚本。

我尝试使用 SCP 命令,但它无法连接到我的本地计算机。我也看到了 PSCP,但我无法在我的计算机上安装 pscp.exe。

答案1

安装 Putty,然后使用:

c:\progra~1\putty\pscp.exe c:\local_path\to\files.*  user@host:/destination/directory

您可以使用密钥(生成一对,然后只输入民众密钥(以正确的格式导出!)放入目标用户的文件中),以使此过程自动化(即,无需您每次都以交互方式输入密码)并保证安全。要将密钥与 pscp 一起使用,只需在源和目标之前.ssh/authorized_keys添加选项, 即可。-i \path\to\PRIVATEkey

答案2

我可以推荐DOS 批处理 FTP 脚本页面

我需要在工作中这样做(这是系统管理员之间的一个小竞争),这对我帮助很大。您还可以将 FileZilla 与 CommandLine 或其他提供完整 FTP 支持的工具一起使用。

答案3

如果您使用的是带有周年更新的 Windows 10,则可以安装适用于 Windows 的 Linux 子系统并使用常规 scp。

答案4

您可以使用 VBScript 和 XMLHTTP 版本。下面的子下载而不是上传,但它可以为您提供一个开始:

Sub wGet(strURL, strLocalFile)
'
' Example Usage
' wGet URLtofile, LocalFileSpec
'
  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
  With objXMLHTTP
    .Open "GET", strURL, False
    .Send
    If .Status = 200 Then
        Set objStream = CreateObject("ADODB.Stream")
        With objStream
          .Open
          .Type = 1
          .Write objXMLHTTP.responseBody
          .SaveToFile strLocalFile, 2
          .Close
        End With
    Else 
      varToUser = MsgBox("Web server returned an error", _
                  vbInformation, "ASU Portable Environment Setup")
      Wscript.Quit
    End If
  End With
  Set objXMLHTTP = nothing
End Sub

相关内容