即使命令提示符检测到文件的路径,也找不到 Windows 终端

dx_*_*_dt 3 windows command-line windows-terminal

有许多 Stack Overflow 问题提出了这个问题的变体;我已经通读了前 10 个左右,但没有一个能解决我的问题。

我正在尝试wt.exe通过命令提示符运行。

wt
wt.exe
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,它都会打印错误消息:

The system cannot find the file C:\Users\MyUser\AppData\Local\Microsoft\WindowsApps\wt.exe.
Run Code Online (Sandbox Code Playgroud)

如果当前目录是C:\Users\MyUser\AppData\Local\Microsoft\WindowsApps.

很明显,它正在查找文件,因为它从任何工作目录中找出了它的路径。我对自己的用户有权限AppData,而且——我检查过——我对wt.exe自己有权限。我也试过它以管理员身份运行,结果相同。即使从wt自身运行它也找不到它。

运行code-insiders正常,它也在AppData. 运行where wt返回正确的路径。

奇怪的是这在我的其他计算机上工作,我认为它之前在这台计算机上工作并且实际上停止了(我几个月没有使用它)。

有任何想法吗?

use*_*686 8

下面的对象~\AppData\Local\Microsoft\WindowsApps不是文件——它们是执行别名,通过重解析点实现。它们有点像符号链接或连接点,因为它们只指向特定应用程序包中的另一个文件,尽管它们包含一些关于包的额外元数据,并且它们支持被执行但不支持打开。

但就像符号链接或连接点一样,即使链接的目标不再存在,您仍然会看到链接存在 – 但您将无法打开它。

在这种情况下,wt.exe 是指向 Microsoft.WindowsTerminal 包(或可能指向其“预览”变体)的执行别名。您应该确保该软件包实际上已安装:

Get-AppxPackage Microsoft.WindowsTerminal
Run Code Online (Sandbox Code Playgroud)

如果没有,请从 Microsoft Store 应用中获取。如果是,请尝试通常的“修复”命令:

Get-AppxPackage Microsoft.WindowsTerminal | foreach {
    Add-AppxPackage -Register "$($_.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode
}
Run Code Online (Sandbox Code Playgroud)

或者使用设置应用程序(在应用程序?应用程序和功能?应用程序执行别名)禁用和重新启用 Windows 终端包的“wt.exe”别名。

在此处输入图片说明

  • 最后一点成功了。谢谢! (2认同)