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