使用WinSCP脚本自动将文件传输活动从本地计算机传输到远程计算机

时间:2019-07-16 10:00:14

标签: windows batch-file sftp winscp

我想将文件(一次约50个文件)从本地计算机批量传输到远程计算机(Linux服务器),并且我想使用WinSCP自动化此活动。

我已经通过在WinSCP中手动执行来生成代码。保存代码并创建批处理文件。但这会引发类似

的错误
  

文件名,目录名或卷标语法不正确

     

系统找不到指定的路径。

但是给定的目的地和来源有效/正确。

@echo

"open sftp://XXXXXXXXXXXXXX/ -hostkey=""ssh-rsa XXXX gk:op:09:n8:00:44:32:00:11:bn:mm:pp:45:bh:03:ea"""
"lcd C:\Users\007\Documents\testdata"
"cd /XXX/XXX/XXX/testdata"
"put *"
"exit"

set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
  echo Success
) else (
  echo Error
)

exit /b %WINSCP_RESULT%

1 个答案:

答案 0 :(得分:0)

您发布的内容绝不会生成WinSCP的批处理文件。您必须手动更改了脚本(并破坏了脚本)。

batch file that WinSCP would generate看起来像:

@echo off

"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
  /log="C:\writable\path\to\log\WinSCP.log" /ini=nul ^
  /command ^
    "open sftp://XXXXXXXXXXXXXX/ -hostkey=""ssh-rsa XXXX gk:op:09:n8:00:44:32:00:11:bn:mm:pp:45:bh:03:ea""" ^
    "lcd C:\Users\007\Documents\testdata" ^
    "cd /XXX/XXX/XXX/testdata" ^
    "put *" ^
    "exit"

set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
  echo Success
) else (
  echo Error
)

exit /b %WINSCP_RESULT%

用于生成用于文件传输的批处理文件的WinSCP对话框示例:

enter image description here