我有一個 nodeJS 腳本,它運行 Inkscape SVG 檔案並使用以下命令匯出某些圖層:
inkscape.exe "myfile.svg" -i ${id} -j -C --export-png="${outPath}"
然而,在我的新系統上,我透過 Windows 應用程式商店安裝了 inkscape,現在可執行檔位於 中的某個位置C:\ProgramFiles\WindowsApps
,無法存取。我可以更改權限,但我認為該資料夾被鎖定是有充分理由的。
有沒有辦法在不存取該資料夾的情況下運行Windows應用程式?我想要適用於大多數應用程式的解決方案,而不僅僅是 Inkscape。
答案1
筆記:
為了創建這個答案,而不是使用墨景,我使用的是UWP應用程式Windows計算機。
然而,在我的新系統上,我透過 Windows 應用程式商店安裝了 Inkscape,現在執行檔位於 C:\ProgramFiles\WindowsApps 中,無法存取。我可以更改權限,但我認為該資料夾被鎖定是有充分理由的。
如果將 WindowsApps 上的權限變更為預設值以外的任何權限,結果將是不確定的,並且 UWP 應用程式將停止運作。
有沒有辦法在不存取該資料夾的情況下運行Windows應用程式?
確實可以從命令提示字元運行 UWP 應用程式。
執行以下 PowerShell 命令
取得 appxpackage > 結果.txt
導航至
%UserProfile%
並打開結果.txt- 確定安裝位置為了
Windows Calculator
。 - 確定包家族名稱為了
Windows Calculator
。 - 使用檔案總管導覽至安裝位置。
- 用記事本開啟AppManifest.xml
- 確定應用程式ID對於 Windows 計算機。我通常會搜索執行檔我嘗試啟動的 UWP 應用程式的名稱。
- 在某些情況下,同一資料夾中會存在多個 UWP 套件。這意味著
AppManifest.xml
將處理多個可執行檔。
- 在某些情況下,同一資料夾中會存在多個 UWP 套件。這意味著
在命令提示字元下鍵入以下內容:
explorer.exe shell:appsFolder\Microsoft.WindowsCalculator_8wekyb3d8bbwe!App
如果您找到了正確的應用程式ID對於該應用程序,Windows 計算器將啟動。
UWP應用程式的安裝位置不是靜態的,隨著新版本的發布,它們的位置會改變。因此,透過遵循本指南,我確定當前包家族名稱Microsoft.WindowsCalculator_8wekyb3d8bbwe
Windows計算機的安裝ID曾是APP
這適用於任何 UWP 應用程序,因此我對 Windows Live Calendar 重複了該過程並運行,explorer.exe shell:appsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar
這導致 Windows 日曆啟動。
答案2
雖然 @Ramhound 的答案相當完整,但發現商店安裝的 UWP 應用程式的部分可以改進:
- 在 Windows 執行對話方塊 ( Win+ R) 中,執行
shell:AppsFolder
- 在資料夾中找到有問題的應用程式
- 右鍵單擊並選擇“建立快捷方式”
- 對“將快捷方式放置在桌面上”說“是”
- 右鍵單擊該快捷方式並選擇“屬性”
- 「目標」欄位中的條目是您需要的 ID。
- 複製 ID(如果可以的話)
現在可以透過以下方式呼叫該應用程式:
explorer.exe shell:appsFolder\app-id
如果您無法複製“目標”字段並且沒有可以拾取它的產品(我使用捕獲文字),你可以使用Ramhound的程式或文章中的程序 從命令列啟動 Windows 10“應用程式商店”。