Durchsuchen Sie einen UNC-Pfad mit Windows CMD, ohne ihn einem Netzlaufwerk zuzuordnen


153
C:\> cd \\somewhere
'\\somewhere'
CMD does not support UNC paths as current directories.

Um dies zu umgehen, ordne ich dieses Verzeichnis normalerweise einem Netzlaufwerk zu und kann dann über die Eingabeaufforderung problemlos darauf zugreifen.

Aber gibt es einen einfacheren Weg, dies zu umgehen?


12
Welche Fenster benutzt du? Wenn es sich um Windows 7 handelt, ist Powershell auf Ihrem System vorinstalliert. Powershell unterstützt (mit wenigen Ausnahmen) Unc-Pfade und Cmd-Befehle.
wullxz

Sie können jederzeit zum Pfad unc durch run navigieren.
Supercereal

1
@wullxz: Prost, ich wusste nicht, dass Sie UNC-Pfade mit PowerShell durchsuchen können. @kyle: Das ist tatsächlich eine gültige Antwort gemäß meiner Frage :) Aber ich möchte über eine Befehlszeilenumgebung darauf zugreifen. Wird meine Frage ändern, um dies klarer zu machen.
Andreas Grech

Wenn Ihr Problem darin besteht, dass Sie nur über die Befehlszeile arbeiten müssen, können Sie das Netzlaufwerk mit dem Befehl 'net' zuordnen: net use x: \\ Computername \ Freigabename
Al Crowley

1
@ Anbieter Crowley: Ja, ich weiß, aber ich frage, ob es einen einfacheren Weg gibt, bei dem kein Netzlaufwerk zugeordnet wird.
Andreas Grech

Antworten:


210

Wenn Sie pushdund popdanstelle von verwenden cd, wird dieser UNC-Fehler nicht angezeigt.

pushd <UNC path>wird ein temporäres virtuelles Laufwerk erstellen und darauf zugreifen.
popdlöscht das temporäre Laufwerk und bringt Sie zurück zu dem Pfad, den Sie eingegeben haben pushd.

Beispiel:

C:\a\local\path> pushd \\network_host\a\network\path

U:\a\network\path> REM a temporary U: virtual drive has been created

U:\a\network\path> popd

C:\a\local\path> REM the U: drive has been deleted

C:\a\local\path>

13
Durch pushddie Verwendung von wird eine Laufwerkszuordnung zur Netzwerkfreigabe erstellt und anschließend in einen Pfad relativ zur von ihr erstellten Freigabe geändert. popdtrennt die Freigabe.
Dov

2
Dies hat bei mir unter Windows 10 nicht funktioniert.C:\WINDOWS\system32>pushd \\some\network\path ' ' CMD does not support UNC paths as current directories.
kayleeFrye_onDeck

1
Es hat nur für mich in Windows 10 funktioniert, wie seltsam. Ich habe es getan pushd \\ServerName\home\dir\dir2.
Diziet

3
Einheimisch und elegant, nur ein Wunder. Funktioniert für Windows 10.
WesternGun

Gibt es einen Trick, um es zum Laufen zu bringen, wenn die Anmeldeinformationen der Freigabe nicht mit den Anmeldeinformationen des Computers übereinstimmen?
Perkins

15

Ich benutze dazu Git Bash , da ich es bereits installiert habe.

Bildbeschreibung hier eingeben

Als zusätzlichen Bonus:
Es hat auch bessere Farben, lassen Sie mich ist verwenden ls, rmetc. und verwendet das richtige slash für Pfade. : P


Sie können Backslashes auch verwenden, wenn Sie sie mit Backslashes cd \\\\server\\share\\subdirectory
umgehen

1
Wenn Sie versuchen, die Tabulatorvervollständigung für Computernamen zu verwenden, wird die Shell möglicherweise für einige Zeit gesperrt, bis die Namen aufgelöst sind.
user121391

Es funktioniert nicht für mich
KansaiRobot

12

Klius "ContextConsole Shell Extension" (alias Open Command Prompt) sagt, dass es "sogar Verzeichnisse von Netzwerkpfaden (UNC-Pfaden) öffnen kann" (aus einem Explorer-Fenster).

http://code.kliu.org/cmdopen/

Bildbeschreibung hier eingeben


3
Dieses Programm ist der Hammer!
afrazier

1
Ich bin schockiert von dem Screenshot, es gibt ihn!
LiuYan 刘 研

Denken Sie daran, das Laufwerk // zu öffnen und keine zugeordnete Version. Es wird auf der Karte fehlschlagen.
Twobob

8

Ich habe auch das UNC-Problem mit C:\> cd \\somewherein einem C-Programm getroffen. Fand diese Seite und erfuhr von dem netBefehl: net use x: \\computer name\share nameund setzte ihn erfolgreich ein! Vielen Dank an alle, die ihre Erfahrungen veröffentlicht haben, von denen andere lernen können. :-)


1
Ja, aber mit net usewird dieser Speicherort einem Netzwerklaufwerk zugeordnet, und das ist nicht das, was ich wollte.
Andreas Grech

2
@AndreasGrech, Tut das eigentlich pushdauch.
Pacerier

Dies funktioniert im Gegensatz zu gut in Far+ . ConEmupushd
Dzmitry Lahoda

@Pacerier Wählt jedoch pushdautomatisch einen Laufwerksbuchstaben aus und trennt das Netzlaufwerk, wenn es nicht mehr benötigt wird (nach popdoder exit).
Martin

4

Wenn Sie XP verwenden, können Sie einen Blick auf diese Website werfen: http://support.microsoft.com/kb/156276

Es gibt einen Registrierungswert, den Sie hinzufügen, abmelden und erneut anmelden müssen. Jetzt unterstützt Ihre cmd.exe UNC-Pfade. Es scheint mir, dass Sie immer noch nicht zum Pfad wechseln können, aber Sie können ihn in anderen Befehlen wie dir, copy ... verwenden.

Eine Alternative könnte der Befehl pushd sein, mit dem Sie zur Freigabe wechseln können (ich schätze, indem Sie ihr einen temporären Laufwerksbuchstaben zuweisen). Http://support.microsoft.com/kb/317379


Die Seiten, die Sie verlinkt haben, scheinen leer zu sein ......
Pacerier

Die Links funktionieren hier. Haben Sie versucht, https zu verwenden?
BigBlackDog

-3

Sie können die HttpFileServer-Anwendung verwenden. Sie ist über Windows sehr leicht und sehr einfach zu konfigurieren. Sie ermöglicht die Freigabe eines Netzwerkordners UNC (\ server \ share) für das HTTP-Protokoll. Der HTTP-Link kann in jeder HTML-Seite verwendet werden

http://www.rejetto.com/hfs/

es ist wunderbar


8
Für einen Befehlszeilenbenutzer nicht sehr nützlich.
Isaac Rabinovitch

Ich stimme zu, dass dies ein erstaunliches Stück Software ist, aber wie kann es verwendet werden, um die Tatsache zu umgehen, dass die CMD-Fenster-App UNC nicht handhabt?
Jay Elston
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.