You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过命令行调用UWP应用打开指定格式文件(以3D Builder打开.3mf文件为例)

如何通过命令行调用UWP应用打开指定格式文件(以3D Builder打开.3mf文件为例)

你遇到的问题其实是UWP应用的特性导致的——直接运行UWP包里的.exe文件(比如Builder3D.exe)并不能正确接收命令行参数,因为这些exe只是UWP应用的启动入口,真正的应用逻辑是通过系统的应用激活机制来处理参数的。下面给你几个直接可行的方案:

方法一:使用CMD的start命令

这是最直接的命令行方式,你只需要知道3D Builder的AUMID(应用用户模型ID),然后结合文件路径来启动:

start "" "shell:AppsFolder\Microsoft.3DBuilder_8wekyb3d8bbwe!App" "C:\你的文件路径\example.3mf"
  • 注意:文件路径一定要用完整路径,并且如果路径里有空格,必须用双引号包裹。
  • 如果不确定AUMID是否正确,可以在PowerShell里运行Get-StartApps | Where-Object {$_.Name -like "*3D Builder*"},就能看到对应应用的AUMID,避免因为版本更新导致的路径变化问题。

方法二:使用PowerShell命令

如果你习惯用PowerShell,也可以用以下两种方式:

  1. Start-Process命令:
Start-Process -FilePath "shell:AppsFolder\Microsoft.3DBuilder_8wekyb3d8bbwe!App" -ArgumentList "C:\你的文件路径\example.3mf"
  1. 更简洁的直接调用方式:
& "shell:AppsFolder\Microsoft.3DBuilder_8wekyb3d8bbwe!App" "C:\你的文件路径\example.3mf"

为什么直接运行Builder3D.exe没用?

UWP应用和传统桌面程序的启动机制不一样,包里的.exe只是一个轻量级的启动器,它不会直接处理你传入的命令行参数,必须通过Windows的shell激活机制(也就是上面用到的shell:AppsFolder路径+AUMID)来传递文件参数,这样系统才会正确触发UWP应用的文件激活事件,让3D Builder加载你指定的.3mf文件。

对你的UWP应用的建议

在你自己的应用里,当用户选择用3D Builder打开文件时,你只需要通过代码调用上面的命令即可(比如用C#的Process.Start执行CMD命令,或者直接调用PowerShell命令),这样就能实现让用户一键用3D Builder打开目标.3mf文件的需求。

备注:内容来源于stack exchange,提问作者Codrut

火山引擎 最新活动