Comment find des liens symboliques brisés automatiquement sur Windows?

Je ne sais pas si c'est un mauvais style, mais je pose cette question ici parce que je n'ai pas trouvé la réponse ailleurs, puis j'ai élaboré une seule solution. Je serais intéressé de voir les solutions d'autres personnes, mais après quelques jours, je publierai la mienne.

Dans mon cas particulier, je cours sur Windows 7, mais je serais intéressé par les réponses pour d'autres versions de Windows. Je me rends count qu'une réponse est "installer une version de Unix find, puis résoudre comme pour Unix ", mais je voulais une solution plus "native".

EDIT 2012-07-17: Clarification: par "automatiquement", je pense idéalement à quelque chose que je peux exécuter dans le cadre d'un script plutôt qu'un outil GUI qui fait tout le travail en appuyant sur un button, parce que je vais vouloir faire Ce n'est pas surveillé.

3 Solutions collect form web for “Comment find des liens symboliques brisés automatiquement sur Windows?”

un peu tard, mais voici ma propre réponse à ma question. C'est essentiellement la même approche que celle habituelle sur Unix: trouvez tous les liens, puis agissez sur les objects brisés; Ce n'est pas aussi concis. Le script ci-dessous supprime les liens symboliques brisés, après avoir jeté des informations sur eux.

@echo off rem Grab the list of directories to scan, before we "pushd to dir containing this script", rem so that we can have the default be "dir from which we ran this script". setlocal if x%CD%==x (echo Command Extensions must be enabled. && goto :eof) set ORIGINAL_DIR=%CD% pushd %~dp0 set DIRS_TO_CHECK=%* if x%DIRS_TO_CHECK%==x ( set DIRS_TO_CHECK=. ) rem Find all the files which are both links (/al) and directories (/ad). rem (We use "delims=" in case any paths have a space; space is a delim by default.) rem If not, delete it (and assume something else will fix it later :-). echo Deleting broken symlinks ... echo. for %%D in (%ORIGINAL_DIR%\%DIRS_TO_CHECK%) do ( echo Checking %%D echo. pushd %%D if errorlevel 1 ( echo Cannot find "%%D" echo. goto :Next_Dir ) rem Clean up broken directory links. for /f "usebackq delims=" %%L in (`dir /adl /b`) do ( rem Check the directory link works. rem Redirecting to nul just to hide "The system cannot find the file specified." message. pushd "%%L" >nul 2>&1 if errorlevel 1 ( echo Deleting broken directory symlink "%%L". rem First dump out some info on the link, before we delete it. rem I'd rather a more human-readable form, but don't know how to get that. fsutil reparsepoint query "%%L" rmdir "%%L" echo. ) else ( popd ) ) rem Clean up broken file (non-directory) links. for /f "usebackq delims=" %%L in (`dir /a-dl /b`) do ( rem Check the file link works. rem Redirecting to nul just to hide "The system cannot find the file specified." message. copy "%%L" nul >nul 2>&1 if errorlevel 1 ( echo Deleting broken file symlink "%%L". rem First dump out some info on the link, before we delete it. rem I'd rather a more human-readable form, but don't know how to get that. fsutil reparsepoint query "%%L" rm "%%L" echo. ) else ( popd ) ) popd :Next_Dir rem Putting a label on the line immediately before a ')' causes a batch file parse error, hence this comment. ) echo Deleting broken symlinks ... done. :Finally popd 

Les outils suivants peuvent vous aider à find et supprimer des liens symboliques dans Windows

  1. Junction Link Magic
  2. Diskjunction

Vous pouvez également essayer un utilitaire open source appelé SageLinks , il affiche et vérifie les jonctions Windows NTFS, les liens symboliques et même les raccourcis.

  • Comment créer un lien simlink dans un répertoire?
  • Déterminer l'location du volume en comprenant le nom de lien symbolique de Windows
  • alias de table (ou 'lien symbole') dans mysql
  • Comment find le directory de travail actuel?
  • Que signifie "lien vers inconnu"?
  • Impossible de supprimer le lien symbolique
  • Quelle est la différence entre un «lien symbolique» par rapport à une «jonction» lors de l'utilisation de «Link Shell Extension»?
  • Autorisation refusée pour symlink to exécutable dans le directory nfs monté avec le bit collant activé
  • Ce qui est généralement considéré comme plus rapide ou la meilleure pratique: liens symboliques ou alias Apache?
  • Préserver les liens symboliques de destination existants avec rsync
  • Les dossiers sur plusieurs disques apparaissent dans un seul dossier sans utiliser de liens symboliques
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.