相对于 NTFS 重新分析点(符号链接/目录联结)的路径规范化

本文关键字:联结 规范化 路径 符号链接 NTFS 相对于 | 更新日期: 2023-09-27 18:33:54

不幸的是,我在Windows上,我需要POSIX realpath

假设 CMD 批处理脚本中有一个目录路径变量:

FOODIR=D:/tmp/foo/bar/quux

其中 dirpath 的一个或多个中间组件是符号链接(Microsoft 术语中的目录联结):

[/cygdrive/d/tmp]$ cmd /C dir /Ad /l
 ...
 Directory of D:'tmp
...
2014-12-10  16:44    <SYMLINKD>     foo [D:'storage'foo.canonical]

如何编写一个将%FOODIR%转换为D:/storage/foo.canonical/bar/quux的函数?

欢迎任何解决方案。

相对于 NTFS 重新分析点(符号链接/目录联结)的路径规范化

GetFinalPathNameByHandle为我工作。

或者,使用 Powershell 5+,您可以遍历路径并解析每个文件夹。检查.LinkType in ('Junction', 'SymbolicLink')并使用具有可选分辨率的.Target[0]的相对符号链接。