python 中有没有办法启动 Powershell "session" / 在不同时间将多个命令传递给单个 Powershell 会话?

Is there a way in python to start a Powershell "session" / pass multiple commands at different times to a single powershell session?

例如,假设我想在 powershell(或命令行)中设置一个变量,然后稍后使用 subprocess.check_output("echo $var", shell=True)(这不是我需要做的,只是一个例子)。或者,假设我想让一个用户 'cd' 访问一个目录,并且能够从该目录执行 运行 命令。我将能够有一些 python 变量来保存当前目录,并且总是 运行 "cd {dir};{command}",但这效率很低,而且仍然不适用于在每种情况下,我都需要为用户可能想要 运行 一个命令,然后 运行 另一个取决于第一个命令的命令的每种可能情况添加一些特殊的代码。

抱歉,如果我对这个问题的表述不当,请告诉我是否需要澄清。 TIA!

好的,经过一番搜索,我找到了一种方法。使用名为 pexpect 的模块,GitHub 上的 MarkBaggett 提供了一种简单的方法来执行此操作:pxpowershell。这是一个例子:

ps = pxpowershell()
ps.start_process()
ps.run("$x = 10")
print(ps.run("echo $x"))
ps.stop_process()

唯一的小问题是 1. 颜色不起作用,以及 2. 您需要 decode() 和 strip() 输出,尽管您可以将其添加到 pxpowershell.py。