Windows определит, находится ли папка SymLink в пути

Здесь есть несколько решений, чтобы определить, является ли данная папка символической ссылкой...

но как определить, является ли одна из папок в пути SymLink...
не только непосредственный родитель...
а какая-нибудь папка предка???

например, в пути:

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

если "dir3" является символической ссылкой, как я могу его обнаружить

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 получить реальный путь к файлу, сравнив его с используемым путем.

Другие вопросы по тегам