首页 > 解决方案 > 从 Python 运行 WinSCP 命令

问题描述

我创建了以下带有名称的命令文件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> 

标签: pythoncommand-linesftpwinscp

解决方案


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

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

什么是无效语法。后面不能有空格/script=

这应该有效:

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

如果您想避免创建脚本文件,请参阅:从 Python 在控制台中运行 WinSCP 命令


推荐阅读