1

何らかの理由で、Powershell スクリプトが呼び出された後に Popen が終了できず、コマンドの出力が動的ではありません。

コードに何か不足していますか:

sCmd = "powershell -file somefile.ps1"
process = subprocess.Popen(sCmd.strip(), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

while True:
    p = process.communicate()
    sys.stdout.write(p[0])
    sys.stderr.write(p[1])

    sys.stdout.flush()
    if(len(p[0]) == 0 and isinstance(process.poll(), int)):
        break

if(process.wait() != 0):
    os._exit(1)
4

1 に答える 1

2

PowerShellコマンドが実際に正しく終了していることを確認します。ハングしたPowerShellプロセスは、これの原因になりがちです。

また、あなたは持ってはいけませんshell=True。これは大きなセキュリティリスクです。また、プロセスがハングしている理由を検討している可能性もあります。PowerShellスクリプトが実行されない場合shell=Trueは、それを修正することをお勧めします。

于 2012-10-11T20:38:05.013 に答える