Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于NTFS重分析点的路径规范化(符号链接/目录连接)?_C#_Powershell_Cmd - Fatal编程技术网

C# 关于NTFS重分析点的路径规范化(符号链接/目录连接)?

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

不幸的是,我在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/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]