我创建了以下名为 submitCmd.txt
的命令文件:
open <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9bf6e2f5faf6fedbfdefebf8f7f2fef5efe8b5f6e2e8fee9edfeb5f8f4f6" rel="noreferrer noopener nofollow">[email protected]</a> -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=
后面不能有空格。
这应该有效:
subprocess.run(["winscp.com", "/script=" + cmdFile], shell=True)
如果您想避免创建脚本文件,请参阅:From Python run WinSCP commands in console .
关于python - 从 Python 运行 WinSCP 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066584/