CMD Datei erstellen imÜberlangen Pfad

madmax2010 schrieb:
Dateien verschieben oder ein Dateisystem nutzen, dass mit so langen pfaden klar kommt.
Mit dem Dateisystem hat das nur garnichts zutun. NTFS kann 32768 Zeichen.

Das Problem sind alte künstlicher teils Jahrzehnte mitgeschleifte Limits in Programmen, die heutzutage eigentlich garnicht mehr nötig sind oder aufgrund von "Kompatibilität" weiter erhalten geblieben sind, wie im Win32 API Core eben auch.

Es gibt natürlich Mittel und Wege das zu umgehen. Mit Batch meine ich allerdings nicht, ich glaub für Powershell gibts eine Notation mit der es funktioniert, müsste man mal nachlesen. Ansonsten kann mans auch mit aktivem LongPathAware versuchen.

https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry

Grundsätzlich sollte man solche Pfade allerdings vermeiden, solange nicht sichergestellt ist das alle involvierten Programme damit umgehen können.

@Helmut-HB Der Beispielpfad fliegt dir z.B. beim simpeln nutzen von Adobe Acrobat in Verbindung mit PDF um die Ohren, das kann der nämlich aus genannten Gründen nicht.
 
  • Gefällt mir
Reaktionen: madmax2010
Helmut-HB schrieb:
Die Datei muss auf dem PC geschrieben werden.
Wurde in der Registry im Pfad "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" das DWORD32 mit den Name LongPathsEnabled und dem Wert 1 schon erstellt ?

JumpingCat schrieb:
Meinst du diesen Pfad ernst?

der Pfad ansich ist ok, ist wohl auch nur ein Beispiel. Wenn der aber wirklich so aussieht, ist der mehrfach redundant, da sollte man aufräumen.
Ansonsten habe ich schon schlimmere Pfade gesehen.

€dit:

@Helmut-HB

aber ACHTUNG - viele Programme kommen nicht mit den langen Pfaden zurecht, auch Microsoft Office nicht bis einschließlich der 2021er Version. Auch der Explorer unter Windows hat damit seine Probleme. Es kann auch durchaus sein, das die Ausgabe, die die Datei der Ausgabe schreiben soll, ebenso nicht damit zurecht kommt.
Von daher wäre es durchaus ratsam, sich an ein gewisses Limit an Zeichen und Pfadtiefe zu halten.

Du kannst ja auch mal prüfen, ob in einen der obersten Ordner die Datei geschrieben wird, innerhalb des 240 Zeichenlimits.
Wenn ja, dann liegt es definitiv am Programm. Dann heißt es entwerder Workarounds finden wie schon meine Vorposter gesagt haben oder die Dateistruktur zu optimieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: redjack1000, wirelessy und areiland
Beispielpfad. Es gibt auch noch längere.
Microsoft Limits: Leidige Diskussion. Führt zu nix.
Registry ist gesetzt.
Programm zur Analyse und zum aufräumen können mit langen Pfaden umgehen.
Jetzt muss ich nur noch die Dateien eben in solchen Pfaden schreiben können.
\\?\ hab ich getestet. Geht nicht. Mache morgen nochmals einen Versuch.
Bietet vielleicht Python eine Chance
 
Sebbi schrieb:
Wurde in der Registry im Pfad "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" das DWORD32 mit den Name LongPathsEnabled und dem Wert 1 schon erstellt ?

Ist das nicht seit einiger Zeit Geschichte?
 
Ja! Habs trotzdem gemacht...
Bin nun ein wenig angesäuselt. Ich mache morgen weiter. Schönen Abend noch...
 
BFF schrieb:
Ist das nicht seit einiger Zeit Geschichte?

sollte so sein, ist aber nicht immer der Fall - just Microsoft things

ist jenachdem noch aktiv unter gewissen Umständen, vorallem wenn man Windows 10 lange nicht mit frischen ISOs komplett neu installiert hat oder von Win 10 auf Win11 geupgradet hat, oder man von pre 2023 Windows 11 Versionen immer nur geupdatet hat.

Daher schadet es nicht, den Regkey dennoch zu setzten

Und selbst dann können noch lange nicht alle Programme damit umgehen ....
 
  • Gefällt mir
Reaktionen: Mojo1987 und BFF
Helmut-HB schrieb:
\\?\ hab ich getestet. Geht nicht.
Welche Fehlermeldung kommt denn?
Ich habe es eben bei einem Windows 10 Version 22H2 Build 19045.6466 getestet und es funktionierte problemlos.
Ich hatte einen Pfad mit vielen Unterverzeichnissen erstellt, die Länge war über 330 Zeichen.
Ich konnte mit ECHO eine Datei erzeugen / darin schreiben und die Datei mit TYPE auslesen. Immer mit dem Präfix \\?\, z.B. "\\?\C:\langer Pfad\mit\vielen\Unterverzeichnissen\Ausgabe.txt" (""-Zeichen sind Pflicht).

Ohne Nutzung des Präfixes erhielt ich die Fehlermeldung "Das System kann den angegebenen Pfad nicht finden".

EDIT:
Mit echo test>"\\?\C:\Ausgabe\ds hh daten\hh daten\_KLÄREN\CAR NAS Daten aus Desasta\CAROLA_NAS\Daten\Netzwerk\Verwaltung_Büro\Buchhaltung\Buchhaltung\Finanzbuchhaltung\Zahlungsverkehr_2015\erledigt\Netzwerk\Verwaltung_Büro\Buchhaltung\Buchhaltung\Finanzbuchhaltung\Zahlungsverkehr_2015\erledigt\CAR NAS Daten aus Desasta\CAROLA_NAS\Daten\Netzwerk\Verwaltung_Büro\Buchhaltung\Ausgabe.txt" hatte es ebenfalls funktioniert.


BFF schrieb:
Sebbi schrieb:
Wurde in der Registry im Pfad "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" das DWORD32 mit den Name LongPathsEnabled und dem Wert 1 schon erstellt ?
Ist das nicht seit einiger Zeit Geschichte?

Wenn man in Windows 11 unter Einstellungen -> System -> Erweitert die Option "Lange Pfade aktivieren" aktiviert oder deaktiviert, dann wird der von Sebbi erwähnte Registry-Wert auf 1 oder 0 umgestellt. Das scheint also noch notwendig zu sein...
 
Zuletzt bearbeitet: (Text auf Win10 geändert, ich hatte zuerst mit Win11 getestet.)
Zurück
Oben