答案1
快速而肮脏
以下是我取得的进展:
Remove-Item $env:LOCALAPPDATA\Microsoft\WindowsApps\python.exe
Remove-Item $env:LOCALAPPDATA\Microsoft\WindowsApps\python3.exe
这就是您可以摆脱示例中的程序的方法。当您在控制面板中禁用并重新启用相应条目时,它将被重新创建。因此,这里造成的损害很小,您可以得到想要的东西。
找到这个问题的正确解决方案并了解这里发生了什么需要更多时间进行研究。但在 Windows 中做这种事情不是我的日常工作也不是我的专业领域,Linux 更符合我的兴趣。
为使用 winget 安装的应用程序手动创建别名
真正让我开始研究这个问题的原因是,像通过 winget 安装的程序jq
不会出现在路径上,因此无法找到。这与你的要求正好相反。所以我在文件系统、注册表和在线搜索中进行了一番搜索。
目前jq
我在 PowerShell 中执行以下操作:
# Reg2CI (c) 2022 by Roger Zander
if((Test-Path -LiteralPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\jq.exe") -ne $true) {
New-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\jq.exe" -force -ea SilentlyContinue
};
New-ItemProperty -LiteralPath 'HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\jq.exe'
-Name '(default)' -Value "$env:LOCALAPPDATA\Microsoft\WinGet\Packages\stedolan.jq_Microsoft.Winget.Source_8wekyb3d8bbwe\jq-win64.exe"
-PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\jq.exe'
-Name 'Path' -Value "$env:LOCALAPPDATA\Microsoft\WinGet\Packages\stedolan.jq_Microsoft.Winget.Source_8wekyb3d8bbwe"
-PropertyType String -Force -ea SilentlyContinue;
抱歉,代码太长了,显然只有极少数使用 Windows 的人关心代码的可读性和行长。
超薄平板
这似乎与超薄平板。 这里有一个流行的例子, 这是Stackoverflow 上的另一个问题。
抱歉,我本来想对此进行更多的写作和研究,但我在这里完全偏离了主题。