虽然我一直在阅读StackOverflow.com上的有价值的帖子,但我对此非常感谢。我不需要创建我自己的线程。
:)我一直想知道StackOverflow是什么意思。最后,我“能够”做到这一点。
有谁有任何建议如何修复下面的代码?
我正在尝试做的是以某种方式管道命令到新的cmd进程。这是必需的,因为我需要使用特定的局部变量运行cmd。
通常在像echo dir | cmd.exe这样的批处理中完成。然而,我想单独使用IronPython来实现这一点。
提前谢谢。
以下是代码的示例:
import clr
clr.AddReference("mscorlib")
import System
from System.Diagnostics import Process
""" Example"""
class P(System.Diagnostics.Process):
def __init__(self):
self.StartInfo.UseShellExecute = True
self.StartInfo.FileName = r"C:\Windows\System32\cmd.exe"
self.StartInfo.CreateNoWindow = False
self.standard_input = None
self.standard_output = None
self.standard_error = None
@property
def StandardInput(self):
return self.standard_input
@StandardInput.getter
def StandardInput(self):
return self.standard_input
@StandardInput.setter
def StandardInput(self, val):
self.standard_input = System.IO.StreamWriter(val)
def Start(self):
return self.Start()
p_instance = P()
p_instance.Start()
p_instance.StandardInput("dir")发布于 2019-10-25 04:55:36
通常,当您重写一个方法并想要调用原始实现时,您将调用超级实现。您的Start()函数正在调用自身,从而导致堆栈溢出。
def Start(self):
return self.Start()你需要这样做:
def Start(self):
return super(P, self).Start()https://stackoverflow.com/questions/58436857
复制相似问题