2017-04-11 1 views
0

Il y a ici quelques solutions pour détecter si un dossier donné est un lien symbolique ...ligne de commande Windows Dectect s'il y a dossier dans le chemin du lien symbolique

mais comment détecter si l'un des dossiers dans le chemin est un SymLink ...
non seulement le parent immédiat ...
mais tout dossier ancêtre ???

par exemple, dans le chemin:

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

si "rep3" est un lien symbolique Comment puis-je détecter

Répondre

1
fichier

par lots, testé sur 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" 
    ) 

Il utilise le fsutil pour récupérer le chemin d'accès réel au fichier, en le vérifiant par rapport au chemin utilisé.