我創建了一個 PowerShell 腳本,然後用 PS2EXE 編譯它。該程序加載 *.JSON 文件並允許用戶對其進行編輯。該程序從文件瀏覽器窗口開始,以選擇要加載的正確 *.JSON。
現在我想嘗試通過雙擊 *.JSON 並跳過文件瀏覽器窗口來運行程序。所以我右擊文件>選擇打開方式>並選擇mypowershellapp.exe並檢查$PWD
var。但它始終是 system32 目錄。
那麼:如何獲取程序啟動的文件路徑?
事實上:當您使用文件資源管理器的Open with...
快捷菜單並選擇一個應用程序來傳遞手頭的文檔時,該應用程序總是以C:\Windows\SYSTEM32
它的工作目錄啟動。
但是,手頭的文檔是通過其完整路徑作為參數傳遞的,因此您可以推斷出它所在的目錄。
也就是說,在您的(編譯的)*.ps1
腳本中,執行如下操作:
# Note:
# * Use of $args[0] assumes that your script declares no formal parameters.
# * Adjust as needed.
# $args[0] is the document's full *file* path.
# Split-Path -Parent extracts the *directory* path from it.
$dir = Split-Path -Parent $args[0]
當然,你也可以通過這個目錄Set-Location
來改變應用程序的工作目錄。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句