将脚本命令/输入传递给打开的WinSCP shell

时间:2017-03-07 14:56:46

标签: cmd winscp

我正在尝试使用WinSCP.com自动执行文件传输,.cmd有一个包含命令和参数的shell。 但是,自动脚本将从.batC: CD "C:\Program Files (x86)\WinSCP" CALL WinSCP.com REM This opens a REM winscp> REM shell or process REM now theoretically I should be able to run the WinSCP commands REM but they are not being piped into the winscp shell open mypassword | myuser@myserver REM the last command is not being executed. REM Instead the script hangs on the newly opened WinSCP shell. REM There are other winscp commands such as put <file> <path> 文件运行。

因此,这是我的自动化脚本:

open mypassword | myuser@myserver

我的问题是如何告诉WinSCP进程从批处理脚本文件中获取命令winscp

哦,额外:我想最终杀死<a:Response> <a:Witness> <a:WitnessClass> <a:Witness> <a:SomeProperty>SomeValue</a:CITY> <a:Other>whatever</a:Other> </a:Witness> </a:WitnessClass> </a:Witness> </a:Response> 进程\ shell。我在这里不知道正确的术语。是流程还是shell?

1 个答案:

答案 0 :(得分:1)

如果要在批处理文件中使用WinSCP命令(而不是使用/script开关引用的单独脚本文件中),则可以使用WinSCP /command switch

winscp.com /ini=nul /command ^
    "open sftp://myuser:mypassword@myserver/" ^
    "..."
    "exit"

您可以WinSCP GUI generate a batch file template(如上所述)。

虽然建议使用/command开关,但实际要求的是这样的:

(
    echo open sftp://myuser@myserver/
    echo mypassword
    ...
    echo exit
) | winscp.com

请注意,与/commands相比,某些情况下的行为会有所不同,因为当标准输入上提供命令时,WinSCP会假定使用交互式(人工)。这就是您应该使用/commands

的原因