Checking where a symbolic link points at in Windows 7

The dir command dir /a can do this:

2012-12-26  09:30 PM    <DIR>          .
2012-12-26  09:30 PM    <DIR>          ..
2012-12-26  09:30 PM                 0 a.txt
2012-12-26  09:30 PM    <SYMLINK>      link.txt [a.txt]

Alternatively, you can use Windows Explorer:

Right click column, More, Link Target

Copied from StackOverFlow, I just used this line, and it works

fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link

Explanation:

From MSDN about FSUtil : Performs tasks that are related to file allocation table (FAT) and NTFS file systems, such as managing reparse points, managing sparse files, or dismounting a volume. If it is used without parameters, fsutil displays a list of supported subcommands.

For our use, we just care that it outputs a line that has "Symbolic Link" in it, if it's symbolic, which we then find, and if find succeeds, we output one thing, if it doesn't, we output something else.

Notes:

  • The quotes around the folder name are required if the path has spaces in it.
  • It gives the same output whether the folder doesn't exist, or isn't a symlink, use with caution.

Using PowerShell, on at least Windows OS, you can find symbolic-links in any given directory, such as the following:

Get-ChildItem 'C:\nodejs\bin\' | Where-Object {$_.LinkType -eq 'SymbolicLink'}

A more concise alternative would be to use Get-ChildItem's alias ls:

ls 'C:\nodejs' -Attributes ReparsePoint -Recurse

And you can get relevant information on a symbolic-link by doing any of the following:

Get the file item and output its Target property. Target being the "value" of the symbolic-link. In an addition, method or command signatures for creating symlinks when juxtaposing between operating systems, the arguments names of: 'target', 'path' and/or 'value' may hold different meanings than another method signature on a different OS.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Target
E:\AIT\out\dependency_symlink.cmd

Get the file item and output its LinkType property. An item with a LinkType value of SymbolicLink means that its, well, symbolic.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty LinkType
SymbolicLink

Get the file item and output its Mode property. An item with l in the Mode value indicates that it is a symbolic-link.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Mode
-a---l

Get the file item and output its Attributes property. An item attributed with a ReparsePoint value maybe indicative to a symbolic-link.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Attributes
Archive, ReparsePoint