2012-04-17 60 views
13

说我设置一个符号链接:窗口的符号链接的目标

mklink /D C:\root\Public\mytextfile.txt C:\root\Public\myothertextfile.txt 

有没有办法,看看有什么myothertextfile.txt的目标是使用命令行?

+0

或者如果可能的话我该如何追逐perl中的链接 – 2012-04-17 09:20:34

+5

有一个名为mytextfile.txt的目录有点奇怪;你确定你打算使用/ D选项吗? – 2012-04-17 22:38:46

+3

无论如何,“dir”命令默认显示符号链接的目标。 – 2012-04-17 22:39:09

回答

12

哈利约翰斯顿说dir命令显示符号链接的目标

2014/07/31 11:22 <DIR>   libs 
2014/08/01 13:53    4,997 mobile.iml 
2014/07/31 11:22    689 proguard-rules.pro 
2014/09/28 10:54 <JUNCTION>  res [\??\C:\Users\_____\mobile\src\main\res] 
+2

这实际上是一个交汇点,而不是一个符号链接,但符号链接的目录列表看起来非常相似。 – 2014-09-28 21:40:07

+1

当使用git bash时,'dir'不可用,但是你可以改写'cmd // C dir' – 2016-08-05 12:02:02

1

也许有人是热衷于C#的方法来解决类似Directory.GetDirectories目录()中的所有目录符号链接。要列出连接或文件符号链接,只需更改正则表达式。

static IEnumerable<Symlink> GetAllSymLinks(string workingdir) 
{ 
    Process converter = new Process(); 
    converter.StartInfo = new ProcessStartInfo("cmd", "/c dir /Al") { RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true, WorkingDirectory = workingdir }; 
    string output = ""; 
    converter.OutputDataReceived += (sender, e) => 
    { 
     output += e.Data + "\r\n"; 
    }; 
    converter.Start(); 
    converter.BeginOutputReadLine(); 
    converter.WaitForExit(); 

    Regex regex = new Regex(@"\n.*\<SYMLINKD\>\s(.*)\s\[(.*)\]\r"); 

    var matches = regex.Matches(output); 
    foreach (Match match in matches) 
    { 
     var name = match.Groups[1].Value.Trim(); 
     var target = match.Groups[2].Value.Trim(); 
     Console.WriteLine("Symlink: " + name + " --> " + target); 

     yield return new Symlink() { Name = name, Target = target }; 
    } 
} 

class Symlink 
{ 
    public string Name { get; set; } 
    public string Target { get; set; } 
}