如何告诉我的python代码在PowerShell或命令提示符(cmd)中运行

use*_*867 14 python windows powershell cmd

我有一个python应用程序,它有一个shell,需要根据它运行的shell是否为Windows Command Prompt (cmd)或进行一些设置Powershell.

我无法弄清楚如何检测应用程序是否正在运行powershellcmd.

从我在stackoverflow和Google上的搜索,似乎唯一的方法是使用psutil查找父进程的名称.

有更好的方法吗?

编辑:我决定用来psutil查找父进程的名称.感谢所有在评论中提供帮助的人.

nxl*_*xl4 -1

根据这篇文章,您应该能够通过subprocessPython 脚本中的模块运行此 CMD/PS 命令:

subprocess.call("(dir 2>&1 *`|echo CMD);&<# rem #>echo PowerShell", shell=True)
Run Code Online (Sandbox Code Playgroud)

CMD如果您在 CMD 中以及PowerShell在 PS 中,则会输出。

  • `call` 和 `Popen` 显然调用 cmd.exe 来执行,而不是父 shell。因此,即使 python 是从 PowerShell 中启动的,此命令也会返回“CMD”作为答案。 (3认同)