我有一个 nodeJS 脚本,它可以运行 Inkscape SVG 文件并使用以下命令导出某些图层:
inkscape.exe "myfile.svg" -i ${id} -j -C --export-png="${outPath}"
但是在我的新系统上,我通过 Windows 应用商店安装了 inkscape,现在可执行文件位于 中的某个位置C:\ProgramFiles\WindowsApps
,无法访问。我可以更改权限,但我想文件夹被锁定是有原因的。
有没有办法在不访问该文件夹的情况下运行 Windows 应用程序?我想要适用于大多数应用程序(而不仅仅是 Inkscape)的解决方案。
答案1
笔记:
为了创建这个答案,不要使用Inkscape,我使用了 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 应用程序的安装位置不是静态的,随着新版本的发布,它们的位置会发生变化。因此,通过遵循本指南,我确定当前封装系列名称WindowsMicrosoft.WindowsCalculator_8wekyb3d8bbwe
计算器安装 ID曾是APP
这适用于任何 UWP 应用程序,因此我重复了 Windows Live 日历的过程并运行,explorer.exe shell:appsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar
结果 Windows 日历启动了。
答案2
虽然 @Ramhound 的回答已经很完整了,但是发现 Store 安装的 UWP 应用程序的部分还可以改进:
- 在 Windows 运行对话框 ( Win+ R) 中,运行
shell:AppsFolder
- 在文件夹中找到相关应用程序
- 右键单击并选择“创建快捷方式”
- 对“将快捷方式放置在桌面上”说“是”
- 右键单击快捷方式并选择“属性”
- “目标”字段中的输入就是您需要的id。
- 复制 ID(如果可以)
现在可以通过以下方式调用该应用程序:
explorer.exe shell:appsFolder\app-id
如果你无法复制“目标”字段,并且没有可以接收它的产品(我使用文本捕获),您可以使用 Ramhound 的程序,也可以使用文章中的程序 从命令行启动 Windows 10“商店应用”。