如何运行从 Windows 应用商店安装的应用程序(https://github.com/microsoft/terminal) 可以从命令行吗?
答案1
start shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App
默认情况下,Windows 终端启用别名,因此您也可以使用:
"%userprofile%\AppData\Local\Microsoft\WindowsApps\wt.exe"
非微软的示例应用程序:
start shell:AppsFolder\XINGAG.XING_xpfg3f7e9an52!App
字符串XINGAG.XING_xpfg3f7e9an52
可以在以下文件夹中找到%userprofile%\AppData\Local\Packages
其他方法包括这里解释
答案2
以下是使用 PowerShell 确定启动 Store/UWP 应用的方法的“纯命令行”方法。对我来说,这比在文章链接在目前接受的答案。在我看来,它还具有更确定性的优势。
正如主要答案中所讨论的,有两种启动 Store / UWP 应用程序的可能方法:
应用程序执行别名。请注意,添加到用户
WindowsApps
文件夹的应用程序默认位于路径上,不需要完全限定名称。例如,justwt
适用于 Windows 终端。您可以通过管理应用程序执行别名环境。但也可能存在应用程序执行别名不是在路径上。例如,大多数游戏(如 Minecraft)都会有一个应用程序执行别名,如果您知道其完全限定路径,则可以启动该别名。
对于那些没有应用程序执行别名的应用程序,您可以回退到该
shell:AppsFolder
方法,使用start
或explorer.exe
启动。
这两种方法的主要挑战是确定每个应用程序要使用的实际命令。这就是以下方法的作用所在。查找启动命令的起点始终是它AppxPackage
本身。但有时查找包可能比其他方法更困难:
“简单”的情况——只需过滤
Get-AppxPackage
的返回结果,找到与 匹配的结果即可Name
。使用 Windows 终端作为示例:Get-AppxPackage |? { $_.Name -like "*Terminal*" } | tee-object -Variable packageMatches
但是,有些应用程序的名称很奇怪。例如,Minecraft Dungeons 包名称是
Microsoft.Lovika
,我猜这是它在开发期间的项目名称。除非你知道自己在寻找什么,否则你可能希望根据清单 DisplayName 执行(较慢的)搜索:Get-AppxPackage |? { (Get-AppxPackageManifest -Package $_.PackageFullName).Package.Properties.DisplayName -like "*Mine*" } | tee -variable packageMatches
一旦获得$packageMatches
结果,您就可以找到启动它的方法:
使用应用执行别名的完全限定路径(如果有)。要确定这一点,请执行以下操作:
$packageMatches |% { $executableName = ((Get-AppxPackageManifest -Package $_.PackageFullName).Package.Applications.Application.Executable) if ($executableName) { "Start-Process ""$($_.InstallLocation)\$executableName""" } else { "No executable found" } }
注意:
Start-Process
此返回的格式仅适用于从 PowerShell 启动,并简化了带空格路径的引用规则。请根据需要调整以适应其他启动器。explorer.exe shell:appsFolder\<PackageFamilyName>!<Id>
当然,如果应用程序没有应用程序执行别名,您可以回退到使用该方法。要获取正确的名称和 ID:$packageMatches |% { "explorer.exe shell:appsFolder\$($_.PackageFamilyName)!$((Get-AppxPackageManifest -Package $_.PackageFullName).Package.Applications.Application.Id)" }
例如,任何通过 Edge 作为应用程序安装的 PWA(渐进式 Web 应用程序)或网站都没有可执行文件,但可以通过 启动
explorer.exe
。
答案3
从命令行(或脚本或计划任务)启动普通应用程序很容易。只需启动可执行文件即可。但从 Windows 应用商店安装的应用程序没有可执行文件。那么如何启动它们呢?
最简单的方法是,如果应用程序有自定义协议。如果有,那么只需调用 start,然后调用协议即可。因此,您可以执行以下操作:
start microsoftvideo:
如果你想为你的应用添加自定义协议,请参阅
https://msdn.microsoft.com/windows/uwp/launch-resume/handle-uri-activation
如果应用程序没有自己的自定义协议,那么您必须通过 shell 启动它。实际上,shell 有自己的协议,因此您可以调用如下命令:
start shell:AppsFolder\Microsoft.WindowsStore_8wekyb3d8bbwe!App
答案4
一些应用程序在 中创建二进制文件%LOCALAPPDATA%\Microsoft\WindowsApps
。
如果没有找到,您可以通过其快捷方式启动该应用程序并在任务管理器中查找实际路径。