Bir NTFS bölümünde, maksimum yol uzunluğu yaklaşık 32,760 karakterdir (32,767'den biraz daha az). Ancak, MAX-PATH hala 260'tır. "MAX-PATH" den daha uzun yollara hala erişilebilir ve "genişletilmiş uzunluklu yol" olarak adlandırılır.
Bu sayfaya göre: Maksimum Yol Uzunluğu Sınırlaması
Uzun bir yol belirtmek için "\\? \" Ön ekini kullanın. Örneğin, "\\? \ D: \ çok uzun yol".
Ayrıca, "genişletilmiş bir yol" un her zaman "mutlak" bir yol olduğunu unutmayın. Bir "genişletilmiş uzunluklu yol" için "göreceli bir form" belirtemezsiniz.
Tam komut dosyanızı çalıştırmayı denemedim, ancak komut isteminden küçük bir test yaptım ve göründüğü gibi görünüyor.
Örneğin:
@for /f "usebackq delims=" %f in (`dir /s /b "\\?\c:\Blah"`) do @echo %f
Şunun gibi bir liste döndürür:
\\?\c:\Blah\test
\\?\c:\Blah\test\aaa
\\?\c:\Blah\test\bbb
\\?\c:\Blah\test\aaa\folder1
\\?\c:\Blah\test\aaa\folder2
\\?\c:\Blah\test\aaa\folder1\File1.txt
\\?\c:\Blah\test\aaa\folder1\File2.txt
\\?\c:\Blah\test\aaa\folder2\File1.txt
\\?\c:\Blah\test\aaa\folder2\File2.txt
\\?\c:\Blah\test\bbb\folder1
\\?\c:\Blah\test\bbb\folder2
\\?\c:\Blah\test\bbb\folder1\Diff.txt
\\?\c:\Blah\test\bbb\folder1\Same.txt
\\?\c:\Blah\test\bbb\folder2\Diff.txt
\\?\c:\Blah\test\bbb\folder2\Same.txt
Ve:
C:>dir /-c /a /w /s /x "\\?\c:\Blah" | findstr /b /c:" "
İade:
0 File(s) 0 bytes
0 File(s) 0 bytes
2 File(s) 660 bytes
2 File(s) 654 bytes
0 File(s) 0 bytes
2 File(s) 654 bytes
2 File(s) 660 bytes
Total Files Listed:
8 File(s) 2628 bytes
20 Dir(s) 3268722688 bytes free
Tam olarak ihtiyacınız olan şey gibi görünmüyor, bu nedenle "dir / findstr" komutunuzda bazı düzenlemeler yapmanız gerekecek.
260 karakterden fazla yolum \ dosyam yok, bu yüzden "çok uzun" yollarda ne olduğunu söyleyemem ama çalışması gerekiyor.
Kullanmakta olduğunuz Yol bir UNC yolu ise, yukarıda bağlantı verilen sayfa şunu söyler:
"\\? \" Öneki, evrensel adlandırma kuralına (UNC) göre oluşturulan yollarla da kullanılabilir. UNC kullanarak böyle bir yol belirtmek için "\\? \ UNC \" önekini kullanın. Örneğin,
"\\? \ UNC \ server \ share", burada "server" bilgisayarın adı ve "share" paylaşılan klasörün adıdır. Bu önekler yolun kendisinin bir parçası olarak kullanılmaz.
Yorumunuzda verdiğiniz UNC yoluna uyacak bir örnek şöyle belirtilmelidir:
dir /-c /a /w /s /x "\\?\UNC\10.0.0.10\folder1\folder2" | findstr /b /c:" "