繁体   English   中英

无法使用 python 脚本从 powershell 命令获取 output

[英]Unable to get the output from a powershell command using python script

我有一个带有 OutFile 的 powershell 命令。 当我直接从 powershell 控制台运行时,它工作得非常好。 它在文本文件中捕获 output。 但是当我尝试使用 python 脚本运行相同的命令时,它没有给出任何错误,但它正在生成一个空文本文件。 我能得到这个问题的解决方案吗? 我正在使用子流程方法。

代码是这样的:

import subprocess,;
process=subprocess.run(["powershell", "-ExecutionPolicy", "Unrestricted", "<Powershell command> | Out-File C:\PythonScripts\out.txt"],stdout=subprocess.PIPE, text=True);
print(process.stdout)

如果你想捕获stdout ,你必须写一些东西到stdout 管道到Tee-Object将同时写入stdout和文件:

import subprocess
process=subprocess.run(["powershell", "-ExecutionPolicy", "Bypass", r"'Hello World!' | Tee-Object -FilePath C:\PythonScripts\out.txt"],stdout=subprocess.PIPE);
print(process.stdout)

Output:

b'Hello World!\r\n'

还有一个包含“Hello World.”的文件。

如果您不需要该文件,只需写入stdout

import subprocess
process=subprocess.run(["powershell", "-ExecutionPolicy", "Bypass", r"'Hello World!'"],stdout=subprocess.PIPE);
print(process.stdout)

Output:

b'Hello World!\r\n'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM