Wer den Windows Explorer nutzt und im Arbeitsalltag oft Pfade hin und her kopieren muss, stößt dabei schnell an die Grenzen des Explorers. Das Kopieren von Dateipfaden kann dabei zu einer Herausforderung werden, wenn man z. B. den Pfad zu einem Netzlaufwerk als „vollständigen“ UNC-Pfad kopieren möchte. Oftmals will man diesen an jemanden schicken, der das Netzlaufwerk bei sich nicht oder unter einem anderen Laufwerksbuchstaben eingebunden hat. Dann ist man bereits aufgeschmissen! Lösungen für dieses und weitere Probleme bzgl. des „Pfad Kopierens“ aus dem Windows Explorer findest du in diesem Artikel.
Schneller Pfade im Windows Explorer kopieren
Oftmals wird das Arbeiten mit Pfaden zu Dateien und Ordnern zu einer Qual. Nach kurzer Zeit hat man verschiedene Explorer-Fenster geöffnet. Wenn es dann aber nötig wird, den Pfad auch in einem anderen Programm oder z. B. in einem Upload-Formular in einem Browser zu verwenden, darf man sich in dessen Auswahlfenster ebenfalls zum gleichen Ordner durchnavigieren. Um das abzukürzen hilft es, nur den Pfad aus der Adresszeile des Explorers herauszukopieren. Hierzu klickt man in der Adresszeile neben den Pfad ins Leere, um so den von Windows als „Breadcrumbs“ dargestellten Pfad wieder als richtigen Pfad anzuzeigen und dann per Kontextmenü oder „STRG“ + „C“ zu kopieren. Danach kann man ihn im Dialogfenster einfügen und sofort an die passende Stelle navigieren, um dort nicht den Ordner wieder mühselig suchen zu müssen.
Pfad inkl. Dateiname kopieren
Umständlicher wird es, sobald man den Pfad inkl. des Dateinamens kopieren will. Aus der Adresszeile des Explorers kann man sich natürlich den Ordnerpfad herauskopieren und den Dateinamen händisch dahinter schreiben oder kopieren. Sogar in den Eigenschaften der Datei, die man über das Kontextmenü per Rechtsklick erreicht, findet man leider nur den Ordnerpfad. Allerdings kann man hier unter dem Reiter „Sicherheit“ doch noch an den vollständigen Pfad inkl. des Dateinamens gelangen:
Einfacher geht es auf die folgende Art:
- Explorer-Fenster in dem Ordner öffnen, der die Datei(en) enthält
- Die „SHIFT“ + „STRG“-Taste gleichzeitig gedrückt halten
- Währenddessen das Kontextmenü zu der Datei öffnen
- Den Eintrag „Als Pfad kopieren“ anklicken
- Der gesamte Pfad inkl. des Dateinamens befindet sich nun in der Zwischenablage und kann frei verwendet werden
Noch schneller geht es, wenn man Windows 11 nutzt und die Datei markiert und dann den Hotkey „SHIFT“ + „STRG“ + „C“ nutzt. Dann wird der Pfad sofort in die Zwischenablage kopiert.
Der Eintrag im Kontextmenü ist hier übrigens dauerhaft aktiv und muss nicht über die Tastenkombination aktiviert werden:
Wenn man das für einen Haufen von Dateien benötigt sind die zusätzlichen Arbeitsschritte um den Pfad zur Datei zu kopieren natürlich reine Zeitverschwendung. Man kann sich natürlich für einen solchen Fall per CMD oder PowerShell alle Dateien mit vollständigem Pfad ausgeben lassen.
Registry-Anpassung
Wem das unter Windows 10 zu umständlich ist, immer die Tastenkombinationen „SHIFT“ + „STRG“ zu verwenden um den Menüpunkt angezeigt zu bekommen oder sofort den Pfad zu kopieren, der kann auch mit den passenden Rechten die Registry so abändern, dass dieser Menüeintrag einfach immer angezeigt wird.
Für das Kontextmenü bei Dateien öffnet man „regedit“ und navigiert bis zum Schlüssel „HKEY_CLASSES_ROOT\*\shell“. Dort legt man über „Bearbeiten“ oder das Kontextmenü einen neuen Schlüssel an, den man z. B. „Als Pfad kopieren“ nennt. In diesem wiederum legt man den Schlüssel „command“ an. Schlussendlich ändert man in diesem Schlüssel den Eintrag Standard und gibt dort als Zeichenfolge „cmd.exe /c echo %1|clip“ ein und speichert den Eintrag ab.
Um den Eintrag auch im Kontextmenü bei Ordnern dauerhaft einzurichten, legt man die gleichen Schlüssel unter „HKEY_CLASSES_ROOT\Directory\shell“ nochmals an.
Vollständigen Pfad zu Ordner bzw. Datei auf einem Netzlaufwerk kopieren
Eine richtig tolle Überraschung erlebt man, wenn man versucht den Ordnerpfad eines geöffneten Netzlaufwerks, wie beschrieben, in der Adresszeile aufzulösen, zu markieren und dann zu kopieren. Es wird leider nicht der sogenannte originale „UNC“-Pfad (Uniform Naming Convention) herangezogen, sondern leidglich der lokale Laufwerksbuchstabe als Grundlage für den Pfad genommen. Einem Kollegen, der das Netzlaufwerk bei sich eventuell gar nicht gemappt hat, bringt dieser Pfad nun rein gar nichts!
Lösungen bei ausreichenden Rechten
Insbesondere auf einem Computer eines Arbeitgebers verfügt man meistens nicht über die vollen Berechtigungen und kann weder beliebige Programme installieren, noch Einstellungen oder Registry-Einträge verändern. Somit sind die folgenden Programme nur bei ausreichenden Rechten bzw. auf einem privaten Computer nutzbar:
Path Copy Copy
Das oft empfohlene Tool um dauerhaft eine Möglichkeit zu schaffen um den UNC-Pfad zu bekommen heißt „Path Copy Copy“. Der Name rührt wohl daher, weil es sich um ein erweitertes altes Tool namens „Pathcopy“ handelt. Das Tool bekommt man kostenfrei auf GitHub: https://pathcopycopy.github.io/
Nach der Installation muss man in den Einstellungen des Tools noch die Einträge für das Kopieren des UNC-Pfads im Kontextmenü aktivieren. Hier kann man sich zwischen vielen Optionen entscheiden. Man kann sich die UNC-Einträge entweder direkt im Kontextmenü oder in einem Untermenü namens „Path Copy“ anzeigen lassen.
Nach einem Rechtsklick auf eine Datei bzw. einen Ordner findet man nun diese Einträge im Kontextmenü:
Wenn man sich auf einem Netzlaufwerk mit einem zugewiesenen Buchstaben befindet, kann man hier nun die vollen Pfade kopieren und an andere Leute, die Zugriff auf diese Pfade haben, schicken.
FileMenuTools
Ein noch mächtigeres Tool findet man bei den sogenannten „FileMenuTools“. Wer nur den UNC-Pfad kopieren möchte überlädt sich hiermit eher sein Kontextmenü mit vielen weiteren optionalen Einträgen:
Wer also noch mehr Funktionen wie z. B. eine Prüfsummenberechnung oder eine symbolische Verknüpfung direkt im Kontextmenü einer Datei oder eines Ordners haben möchte, wird mit diesem Tool sicherlich glücklich werden. Der eigenen Kreativität sind keine Grenzen gesetzt, da man auch eigene Einträge anlegen kann, die zu beliebigen Programmen verweisen.
Das Programm bekommt man unter diesem Link: https://www.lopesoft.com/index.php/en/products/filemenutools
Lösungen die auch in restriktiver Umgebung funktionieren sollten
Die folgenden „Workarounds“ sollten auch in eingeschränkteren Windows-Umgebungen nutzbar sein und dauerhaft eine Möglichkeit bieten den UNC-Pfad zu kopieren. Komisch, dass Microsoft so etwas nicht integriert hat, aber anscheinend empfand man eine solche Funktion dort nicht als sinnvoll und wichtig.
E-Mail-Trick mit Outlook
Wenn der UNC-Pfad sowieso per E-Mail an einen Kollegen gehen soll, kann man auch diesen Workaround über Outlook verwenden:
-
- Den Pfad über „Als Pfad kopieren“ auftreiben oder selber zusammenbasteln
- Eine neue E-Mail in Outlook erstellen
- Über die Tastenkombination „STRG“ + „K“ oder über das Menü „Einfügen“ > „Link“ den Pfad in die E-Mail einfügen:
Wenn man danach noch einmal über das Kontextmenü und den Punkt „Hyperlink bearbeiten“ aufruft, dann sieht man, dass dieser in den UNC-Pfad aufgelöst wurde:
„Senden an“-Dialog missbrauchen
Für einen direkt bei der Datei oder den Ordner dauerhaft nutzbaren Befehl, kann man auch den Eintrag „Senden an“ im Kontextmenü missbrauchen. Hierzu benötigt man ein entsprechendes Skript, das den UNC-Pfad ermittelt und ausgibt. Dieses wird dann als Eintrag unter „Senden an“ hinzugefügt. Hierfür ist nämlich auch kein Eingriff in die Windows-Registry von Nöten. Man muss lediglich in den Ordner, der hinter der „Senden an“-Funktion steckt. Diesen erreicht man, indem man per „Windows“-Taste + „R“ den „Ausführen“-Dialog öffnet und dort „shell:sendto“ eingibt und mit Enter bestätigt:
Für das Skript habe ich viele Ansätze mittels „Visual Basic Script“ oder auch als Batch, in Kombination mit einem alten Tool namens „clip.exe“ aus einem „Windows 98“-Image, gefunden. Letztlich führen viele Wege ans Ziel, weshalb ich hier eine positiv getestete Variante vorstellen möchte.
Als VB-Skript:
Folgenden Code kann man einfach kopieren und als beliebig benanntes VB-Skript (Dateiendung muss .vbs lauten!) im „Senden an“-Ordner ablegen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
If WScript.Arguments.Count = 0 Then WScript.Quit Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") Dim sFile : sFile = fso.GetAbsolutePathName(WScript.Arguments(0)) Dim sDrive : sDrive = fso.GetDriveName(WScript.Arguments(0)) Dim sMap : sMap = GetMappedDrive(sDrive) If sMap <> "" And sDrive <> sMap Then sFile = Replace(sFile, sDrive, sMap) Call CopyToClipboard(sFile) Msgbox "The following path has been copied to the clipboard:" & VbCrLf & VbCrLf & sFile, 0 + 64 Set fso = Nothing WScript.Quit Function GetMappedDrive(sDrive) Dim wshNetwork : Set wshNetwork = CreateObject("WScript.Network") Dim oDrives : Set oDrives = wshNetwork.EnumNetworkDrives Dim i For i = 0 to oDrives.Count - 1 Step 2 If UCase(oDrives.Item(i)) = UCase(sDrive) Then GetMappedDrive = oDrives.Item(i+1) Exit For End If Next Set oDrives = Nothing Set wshNetwork = Nothing End Function Function CopyToClipboard(sText) ' Create temporary text file to avoid IE clipboard warnings Dim sTemp : sTemp = fso.GetSpecialFolder(2) & "\" & fso.GetTempName Dim oFile : Set oFile = fso.CreateTextFile(sTemp, True) oFile.Write "This file can be safely deleted" oFile.Close Set oFile = Nothing ' Start Internet Explorer in the local zone Dim oIE : Set oIE = CreateObject("InternetExplorer.Application") oIE.Visible = 0 oIE.Navigate2 sTemp Do WScript.Sleep 100 Loop Until oIE.Document.ReadyState = "complete" ' Copy contents to clipboard oIE.Document.ParentWindow.ClipboardData.SetData "text", sText ' Clean up fso.DeleteFile sTemp Set oIE = Nothing Set fso = Nothing End Function |
Quelle für den Sourcecode: https://superuser.com/questions/27047/copy-full-file-path-in-windows-xp/704374#704374
Im Kontextmenü könnte das dann z. B. so aussehen und würde mit der nachfolgenden Message Box bestätigt:
PowerShell?
In PowerShell kann man mit folgendem Code-Schnipsel den UNC-Pfad herausfinden, wenn man sich in der PS-Konsole auf einem Netzlaufwerk befindet:
1 2 3 |
$drive = Get-PSDrive -Name (Get-Location).Drive.Name $root = if($drive.DisplayRoot -ne $null){$drive.DisplayRoot} else {$drive.Root} Join-Path -Path $root -ChildPath $drive.CurrentLocation |
Das PowerShell-Skript konnte ich aber, zumindest ohne Registry-Änderung, nicht im Kontextmenü unter „Senden an“ unterbringen. Da es das andere funktionierende VB-Skript gibt, habe ich mich damit deshalb nicht mehr weiter beschäftigt. Vielleicht kann es trotzdem jemand gebrauchen.
Das funktioniert alles nicht
Falls für dich die passende Lösung nicht dabei gewesen sein sollte, folgt hier noch eine kleine Übersicht dessen was ich auch alles erfolglos probiert hatte. So verschwendest du damit immerhin keine Zeit mehr:
- Die Datei in ein PowerShell- oder CMD-Fenster ziehen, bringt auch nur den Pfad mit Laufwerksbuchstabe
- Es gibt in den Ordneroptionen des Windows Explorers die Option den „vollständigen Pfad in der Titelleiste anzeigen“ zu lassen:Diese Option funktioniert bei mir allerdings gar nicht und bringt keinerlei Veränderung.
TotalCommander / FileZilla / Qdir
Es gibt natürlich noch viele andere Tools, die gerne als Ersatz für den Windows Explorer genutzt werden. Allerdings ist auch hier das Ergebnis bzgl. des Kopierens als UNC-Pfad ernüchternd:
TotalCommander: Es gibt im Menü „Markieren“ zwar den Punkt „Pfad kopieren“, dieser kopiert aber auch nicht den UNC-Pfad!- FileZilla: Es handelt sich zwar um einen FTP-Client, den man auch als lokalen Browser nutzen kann, aber auch hier gibt es diese Funktion nicht!
- Qdir: Auch in Qdir, wo man sich vier Ordner gleichzeitig anzeigen lassen kann, findet man diese Möglichkeit nicht!
Weitere Tools habe ich mir dann nicht mehr angesehen.
Update zum TotalCommander
Man lernt nie aus und ich wurde in den Kommentaren darauf hingewiesen, dass der TotalCommander doch genutzt werden kann um den UNC-Pfad zu kopieren. Hierzu nutzt man das Kommando „cm_CopyNetNamesToClip“, das den kompletten UNC-Pfad kopiert. Dieses Kommando kann man sich zumindest selber für einen beliebigen Shortcut konfigurieren.
Fazit
Leider wird die Arbeit mit dem doch etwas in die Jahre gekommenen Windows Explorer nicht von Haus aus Zeit- und Nerven-schonend umgesetzt. Zwar gibt es mit den vorgestellten Workarounds und Programmen Methoden um effizienter zu arbeiten, aber im Prinzip ist es leider oftmals nur durch Drittanbietersoftware möglich voran zu kommen und die Bedienung solcher Standardfunktionen in Windows zu vereinfachen.
Hi,
guter Artikel und damit habe ich endlich den Shortcut ctrl-shift-C gelernt 🙂
Korrekturhinweis:
Der TotalCommander kann das durchaus. Dieser kennt das Commando „cm_CopyNetNamesToClip“, das auch den kompletten UNC-Pfad kopiert. Dieses Commando kann man sich auf jeden beliebigen Shortcut konfigurieren (ob’s einen default shortcut dafür gibt, weiß ich nicht. TotalCommander hat gefühlt mehr Commandos als mögliche Tastenkombinationen)
Hallo Boris,,
danke für das Lob und dein Feedback. Man lernt doch nie aus 😉
Ich werde das in den Artikel mit einbauen.
Viele Grüße
Tobias