如果路径中有SymLink文件夹,Windows命令行将检测到

时间:2017-04-11 20:00:02

标签: windows command-line symlink symlink-traversal

这里有一些解决方案来检测给定文件夹是否是符号链接...

但如何检测路径中的某个文件夹是否为SymLink ...
不仅是直接的父母...
但任何祖先文件夹???

例如,在路径中:

c:\dir1\dir2\dir3\dir4\dir5\dir6\file.txt

如果“dir3”是符号链接,我该如何检测它

1 个答案:

答案 0 :(得分:1)

批处理文件,在Windows 10上测试

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "file=c:\dir1\dir2\dir3\dir4\dir5\dir6\file.txt"

    for %%a in ("%file%") do for /f "delims=" %%b in ('
        fsutil hardlink list "%%~fa"
    ') do if "%%~pnxa"=="%%b" (
        echo no link
    ) else (
        echo linked
        echo "%%~pnxa"
        echo "%%b"
    )

它使用fsutil检索文件的真实路径,并根据使用的路径进行检查。