如何从命令行打开 Windows 应用商店应用?

如何从命令行打开 Windows 应用商店应用?

如何运行从 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方法,使用startexplorer.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

如果没有找到,您可以通过其快捷方式启动该应用程序并在任务管理器中查找实际路径。

相关内容