我想自动化 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