Microsft Windows Terminal(通过 Microsoft Store 安装)创建一个 0 字节wt.exe文件,它是Windows 执行别名。AFAIK 它类似于符号链接,只不过它似乎是在CreateProcessApi 级别解析的,而不是在文件系统中翻译的符号链接。
在 powershell 中:
\n\n\xe2\x9d\xaf dir ~\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe\n\nMode Name\n---- ----\nla--- wt.exe -> C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.0.1401.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe\n\n\xe2\x9d\xaf Get-Item .\\wt.exe | fl\n\nName : wt.exe\nLength : 0\nLinkType : AppExeCLink\nTarget : C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.0.1401.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe\nRun Code Online (Sandbox Code Playgroud)\n\n我无法找到这些“新”别名的正确文档。即使谷歌搜索 PSAppExeCLink值也不是很有用。
我需要一种快速方法来解析 C# 应用程序中的执行别名(获取目标文件)。鉴于我的要求,我更喜欢非托管(Win32 Api)方式,而不是添加对慢速 WMI 或外部 300kb nuget 包的引用。
\n\n谢谢!
\n我的搜索只向我展示了如何在 cmd 中使用mklink创建符号链接。我看到一些东西说要使用readlink,但是 PowerShell 和 cmd 不知道什么是readlink,而且cd显然不起作用。那么我如何跟随一个?
我想编写一个程序,显示带有硬链接的其他驱动器的文件.我想保持两个硬链接在文件名和其他内容一致,所以我必须得到一个函数/方法,我可以列出文件的所有当前硬链接.
例如:
我有一个文件C:\ file.txt和第二个到D:\ file.txt的硬链接.
然后我将D:\ file.txt重命名为D:\ file_new.txt.我现在也希望能够重命名C驱动器上的硬链接.
所以我需要一个返回D:\ file_new.txt的函数,有以下
硬链接:
C:\ file.txt
D:\ file_new.txt
然后我可以重命名C:\上的硬链接来获取D:\ file_new .文本
所以我需要获取物理文件的所有硬链接.或者:使用硬链接寻址的文件的所有硬链接.
希望有人可以帮忙!
编辑:
Oliver注意到硬链接不能用于不同的磁盘.谢谢...所以我把问题扩展到:我需要什么?交汇点?符号链接?它还应该不仅与文件夹的文件一起使用!