Question

J'écris un fichier batch (.bat) et je ne pouvais pas trouver un moyen de découvrir si un répertoire donné je le chemin d'accès est un vrai répertoire ou un Junction (créé sous Windows 7 en utilisant mklink /j). point que quelqu'un peut me dans la bonne direction?

Était-ce utile?

La solution

Ceci est une technique moche mais fsutil reparsepoint query chemin vers le fichier échouera (%ERRORLEVEL% sera 1) si le fichier est pas une jonction et réussir (%ERRORLEVEL% sera 0) si elle est un. L'autre problème est fsutil vous veut être un administrateur. De plus, ne sont pas tous points d'analyse sont les jonctions de répertoires.

Autres conseils

Dans un script batch, vous pouvez utiliser les éléments suivants:

 SET Z=&& FOR %%A IN (linkfilename) DO SET Z=%%~aA
 IF "%Z:~8,1%" == "l" GOTO :IT_A_LINK

est plus rapide que d'appeler DIR /AL.

Le %%~aA obtient les attributs du "linkfilename",
une 9 chaîne char comme d-------- (un répertoire),
ou d-------l un lien vers un répertoire,
ou --------l un lien vers un fichier.

%Z:~8,1% saisit alors que l'attribut point d'analyse.

J'ai ce petit bijou qui liste tous les Jonctions et leurs cibles dans votre répertoire courant:

for /F "delims=;" %j in ('dir /al /b') do @for /F "delims=[] tokens=2" %t in ('dir /a ^| findstr /C:"%j"') do @echo %j :: %t

sortie Exemple:

Application Data :: C:\Users\AB029076\AppData\Roaming
Cookies :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Cookies
Local Settings :: C:\Users\AB029076\AppData\Local
My Documents :: C:\Users\AB029076\Documents
NetHood :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Network Shortcuts
PrintHood :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
Recent :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Recent
SendTo :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\SendTo
Start Menu :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Start Menu
Templates :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Templates
TestLink :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Network Shortcuts
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top