[英]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.