![](/img/trans.png)
[英]Running a psm1 PowerShell script in Command Prompt (cmd.exe)?
[英]Find out if process is running in a cmd.exe or PowerShell window
假设您正在以高级语言编写程序,由于代码是交叉编译的,或者该语言不支持该语言,因此您不允许进行自定义系统调用(win32 API)。
当您的进程在Windows上运行时,是否有办法找出您是在Powershell而不是cmd.exe内部运行? 或相反亦然?
我正在尝试从程序中打印“我正在Powershell中运行”和“我正在cmd.exe中运行”。
在这种情况下,我正在用Golang编写程序,但这并不重要,因为我不想遍历进程树。
Eryksun可能对此有用,但有一篇关于获取父进程的文章 。
将以下文本放入ps1脚本中:
$parentpid=(gwmi win32_process -Filter "processid='$pid'").parentprocessid
Write-Host ("I am running in {0}" -f (Get-Process -id $parentpid).Name)
从CMD调用PowerShell运行它:
我在cmd中运行
从PowerShell和ISE运行它:
我在资源管理器中运行
因此,尽管资源管理器不是很有用,但我想并不是您真正想知道的不是CMD。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.