C# 关于NTFS重分析点的路径规范化(符号链接/目录连接)?
不幸的是,我在Windows上,需要POSIX 假设CMD批处理脚本中有一个dirpath变量:C# 关于NTFS重分析点的路径规范化(符号链接/目录连接)?,c#,powershell,cmd,C#,Powershell,Cmd,不幸的是,我在Windows上,需要POSIX 假设CMD批处理脚本中有一个dirpath变量: FOODIR=D:/tmp/foo/bar/quux 其中dirpath的一个或多个中间组件是(Microsoft术语中的目录连接): [/cygdrive/d/tmp]$cmd/C dir/Ad/l ... D:\tmp目录 ... 2014-12-10 16:44 foo[D:\storage\foo.canonical] 如何编写一个函数,将%FOODIR%转换为D:/storage/fo
FOODIR=D:/tmp/foo/bar/quux
其中dirpath的一个或多个中间组件是(Microsoft术语中的目录连接):
[/cygdrive/d/tmp]$cmd/C dir/Ad/l
...
D:\tmp目录
...
2014-12-10 16:44 foo[D:\storage\foo.canonical]
如何编写一个函数,将%FOODIR%
转换为D:/storage/foo.canonical/bar/qux
欢迎任何解决方案。对我来说很有用
或者,使用Powershell 5+您可以向上遍历路径并解析每个文件夹。检查
.LinkType in('Junction','symbolicink')
并使用.Target[0]
和可选的相对符号链接分辨率。对于现有的非空文件GetFinalPathNameByHandle
应该可以工作。
[/cygdrive/d/tmp]$ cmd /C dir /Ad /l
...
Directory of D:\tmp
...
2014-12-10 16:44 <SYMLINKD> foo [D:\storage\foo.canonical]