Kavşakları, sembolik bağlantıları ve sabit bağlantıları listelemek için ek programlar indirmeniz gerekmez, ancak belirli çıktı biçimi gereksinimleriniz varsa, yardımcı olabilirler.
Geçerli dizindeki ve alt dizinlerindeki tüm kavşak, işaret ve işaret bağlantı dizinlerini listele:
dir /al /s
Ya da ayrı ayrı listelenmesini istiyorsanız ...
Geçerli dizindeki ve alt dizinlerindeki tüm bağlantıları listele:
dir /al /s | findstr "<JUNCTION>"
Geçerli dizindeki ve alt dizinlerindeki tüm sembolik bağlantıları listele:
dir /al /s | findstr "<SYMLINK>"
Geçerli dizindeki ve alt dizinlerindeki tüm işaret dizinlerini listele:
dir /al /s | findstr "<SYMLINKD>"
l
Nitelik bayrağı burada anahtarıdır; l
içindir Reparse Points
(kavşaklar, sembolik bağlantılar ve sembolik link dizinleri)
Sert bağlantılar
Ne yazık ki dir
, sabit bağlantıları normal dosyalar olarak listeler, bu nedenle sabit bağlantıları tanımlamak için kullanamazsınız. Yerine bir kullanım fsutil
yerine. Yükseltilmiş bir komut isteminden çalıştırılması gerekiyor.
İle fsutil
, geçerli dizindeki ve alt dizinlerindeki tüm sabit bağlantıları listele:
for /F "usebackq tokens=2* delims=:" %G in (`forfiles /s /c "cmd /c fsutil hardlink list @path | findstr /n .* | findstr /b /v 1"`) do @fsutil hardlink list "%G" & echo.
Bu bir astar ideal değildir ve her türlü gelişmeyi memnuniyetle karşılarım.
forfiles
Yinelenen alt dizinler seçeneğiyle ( /s
) kullanmak CPU'mu dövdü ve tamamlanması biraz zaman aldı.
- Temel
fsutil
olarak iki kez biter; her çağrının döndürdüğü çıkış satırlarının sayısını sayarak sabit bağlantıları ilk kez ve çıkışı doğru bir şekilde elde etmek için ikinci kez az önce bulunan sabit bağlantıları kullanın.
- Yinelenen satırlar olacak. Bunları ortadan kaldırmak için çıktıyı bir dosyaya yönlendirmek ve dosyayı benzeri bir araçla çalıştırmak istersiniz
uniq
.
İşte sadece for
sabit bağlantıları tanımlamak için kullanan bir toplu iş dosyası . As forfiles
ancak yine de yukarıdaki tek satırlık yer kalan uyarıları uğrar, bu biraz daha hızlı olabilir, dahil edilmez.
@echo off
AT > NUL
if %ERRORLEVEL% NEQ 0 echo You need to run this script from an elevated command prompt. Exiting. && exit /B 1
for /R "%CD%" %%a IN (*.*) do (
for /F "usebackq tokens=2* delims=:" %%b in (`fsutil hardlink list "%%a" ^| findstr /n .* ^| findstr /b /v 1`) do (
fsutil hardlink list "%%b"
REM The following echo command breaks up each group of hard links with a blank line
echo.
)
)
Birkaç başka (denenmemiş) seçenek var:
(Eski) Microsoft HL Scan yardımcı programını kullanın
hlscan /dir %CD%
Microsoft'un SFUA yardımcı programı araç setiyle birlikte verilen alternatif bulma komutunu kullanın :
find . -links +1
Sysinternals ' findlinks yardımcı programını fsutil
yukarıda belirtilenlere benzer şekilde kullanın
Uwe Sieber'ın ListLinks programını kullanın - kullanım için bağlantıya bakın
Bir GUI uygulaması tercih ediyorsanız , Nirsoft'un NTFSLinksView uygulamasını kullanın.