簡體   English   中英

找出進程是否在cmd.exe或PowerShell窗口中運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM