從一個正在運行的exe中,如何輕鬆地確定exe是否從powershell調用?我還沒有找到一個可靠的指標預定義的環境變量。確定powershell是否調用正在運行的exe文件?
我的具體問題是,我試圖通過創建一個「runner」.bat/.ps1修改env(一個Go靜態鏈接的EXE)現有PS會話中的PATH和其他env vars,當前正在運行的cmd.exe或PS的變量。如果從PS調用exe,我將創建一個.ps1。如果該exe文件是從cmd.exe調用的,我將創建一個.bat。理想情況下,我會使用一個蝙蝠的東西,如下面的處理PS:
rem This doesn't work
powershell -C "& { $env:FAKE_PATH_2='C:\ruby193\bin' }"
rem This also doesn't work
powershell -C "& { [Environment]::SetEnvironmentVariable('FAKE_PATH_3', 'Sneaky 1') }"
rem This also doesn't work
powershell -C [Environment]::SetEnvironmentVariable('FAKE_PATH_4', 'Sneaky 2')
但沒有上述的傳播ENV瓦爾現有PS會話。我正在尋找一個解決方案,不需要包裝.bat/.ps1腳本來設置和調用exe。
任何創造性的,低複雜性的想法?
是你的問題如何確定exe是由powershell發起的,或者如何讓exe改變啓動它的powershell進程的環境? –
我的目標是改變啓動exe的運行powershell實例的環境。我目前認爲我需要創建runner .bat或.ps1腳本來執行此操作,並且需要exe才能知道它是如何調用的,以創建跑步者腳本的正確「風格」。開放給所有的想法:) – Jon