运行 来自 Python 的 WinSCP 命令

Running WinSCP command from Python

我创建了以下名称为 submitCmd.txt 的命令文件:

open myname@ftpclients.myserve.com -privatekey=C:\Users\Mike\Desktop\uploader\mykey.ppk
put C:\Users\Mike\Desktop\uploader\files2Upload\myFile.xlsx /mnt/data/myFolder/
close
exit

当我从命令行 运行 上述脚本时:

winscp.com /script=C:\Users\Mike\Desktop\uploader\submitCmd.txt

运行成功了。

但是,当我在 python 中尝试以下操作时:

cmdFile = r'C:\Users\Mike\Desktop\uploader\submitCmd.txt'
import subprocess
subprocess.run(["winscp.com", "/script=", cmdFile], shell=True)

我收到错误:

Searching for host...
Host "C" does not exist.
winscp> 

您的命令将 运行 WinSCP 像这样:

winscp.com /script= C:\Users\Mike\Desktop\uploader\submitCmd.txt

什么是无效语法。 /script=后不能有space。

这应该有效:

subprocess.run(["winscp.com", "/script=" + cmdFile], shell=True)

如果您想避免创建脚本文件,请参阅: