netzwerkdude
Goto Top

Mit Pfaden über 260 zeichen in powershell arbeiten

Moin,

da die powershell cmdlets die mit dateien kontakt haben immer noch die API Limitation von 260 Zeichen haben, muss man beim hantieren mit langen Pfaden den "\\?\" prefix benutzen.

kleines beispiel:
Test-Path "C:\viiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelllllllllllllllllllllllllllllllllllllllllllzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuulaaaaaaaaaaaaaaaaaaaaaaaaangeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer\pfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad\test.txt"  
false

Test-Path "\\?\C:\viiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelllllllllllllllllllllllllllllllllllllllllllzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuulaaaaaaaaaaaaaaaaaaaaaaaaangeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer\pfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad\test.txt"  
true

z.B. wenn man massenweise lange Pfade verarbeitet, mit der Insert Methode die Pfade anpassen:
$Path = "C:\viiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelllllllllllllllllllllllllllllllllllllllllllzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuulaaaaaaaaaaaaaaaaaaaaaaaaangeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer\pfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad\test.txt"  
$Path.insert(0,"\\?\")  

Quelle und mehr Infos:
https://docs.microsoft.com/de-de/windows/desktop/FileIO/naming-a-file#ma ...
(Auch mit Anleitung wie man global die Limitation abschaltet)

Content-ID: 458543

Url: https://administrator.de/contentid/458543

Ausgedruckt am: 24.11.2024 um 01:11 Uhr

bauinformatiker
bauinformatiker 04.06.2019 um 16:39:05 Uhr
Goto Top
Kannst du die Pfade mit dem cmd Befehl "subst" verkürzen?
NetzwerkDude
NetzwerkDude 04.06.2019 um 17:49:41 Uhr
Goto Top
subst ist auch eine möglichkeit, aber ich finde es aufwändiger da du den pfad dann ja teilst in "das neue substituierte root" und "den rest ab dem neuen root" .
Die UNC Pfade benötigen nur den prefix der überall einfach vorne drangehängt wird.

Aber ist evtl. auch persönlicher Geschmack.