Przeglądaj ścieżkę UNC za pomocą Windows CMD bez mapowania jej na dysk sieciowy

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

To, co zwykle robię, aby to obejść, polega na zamapowaniu tego katalogu na dysk sieciowy, a następnie mogę łatwo uzyskać do niego dostęp z wiersza polecenia.

Ale czy jest łatwiejszy sposób na obejście tego?

Andreas Grech
źródło
12
z jakich okien korzystasz? Jeśli jest to Windows 7, masz zainstalowany PowerShell w systemie. Program PowerShell obsługuje polecenia nie-ścieżki i polecenia cmd (z kilkoma wyjątkami).
wullxz
Zawsze możesz przejść do ścieżki unc przez run.
Supercereal
1
@wullxz: na zdrowie, nie wiedziałem, że możesz przeglądać ścieżki UNC za pomocą PowerShell. @kyle: To właściwie poprawna odpowiedź według mojego pytania :) Ale chcę uzyskać do niej dostęp ze środowiska wiersza poleceń. Zmodyfikuje moje pytanie, aby było bardziej jasne.
Andreas Grech
Jeśli problem polega na tym, że musisz pracować tylko z wiersza polecenia, możesz zmapować dysk sieciowy za pomocą polecenia „net”: net use x: \\ nazwa komputera \ nazwa udziału
Al Crowley
1
@Aleister Crowley: Tak, wiem, ale pytam, czy jest łatwiejszy sposób, który nie wymaga mapowania dysku sieciowego.
Andreas Grech

Odpowiedzi:

210

Jeśli użyjesz pushdi popdzamiast tego cdnie dostaniesz tego błędu UNC.

pushd <UNC path>utworzy tymczasowy dysk wirtualny i dostanie się do niego.
popdusunie dysk tymczasowy i wróci do ścieżki, którą byłeś, kiedy wszedłeś pushd.

Przykład:

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>
evanmcdonnal
źródło
13
Użycie pushdtworzy mapowanie dysku do udziału sieciowego, a następnie zmienia się w ścieżkę względem udziału, który tworzy. popdrozłącza udział.
Dow
2
Nie działało to dla mnie w systemie Windows 10.C:\WINDOWS\system32>pushd \\some\network\path ' ' CMD does not support UNC paths as current directories.
kayleeFrye_onDeck
1
To zadziałało dla mnie w systemie Windows 10, jakie to dziwne. Zrobiłem pushd \\ServerName\home\dir\dir2.
Diziet
3
Rodzime i eleganckie, po prostu cud. Działa w systemie Windows 10.
WesternGun
Czy jest jakaś sztuczka, która sprawi, że będzie działać, gdy poświadczenia udziału nie będą zgodne z poświadczeniami użytkownika komputera?
Perkins,
15

Używam do tego Git Bash , ponieważ już go zainstalowałem.

wprowadź opis zdjęcia tutaj

Jako dodatkowy bonus:
Ma też lepsze kolory, niech mi używać ls, rmitp, i używa poprawnej ukośnik na ścieżkach. : P

Dan
źródło
Możesz także użyć ukośników odwrotnych, jeśli uciekniesz przed nimi z ukośnikami odwrotnymi:cd \\\\server\\share\\subdirectory
user121391
1
Ponadto, jeśli spróbujesz użyć uzupełniania tabulatorów z nazwami komputerów, powłoka może się zablokować na jakiś czas, aż nazwy zostaną rozwiązane.
user121391 27.07.16
to nie działa dla mnie
KansaiRobot
12

„Rozszerzenie powłoki ContextConsole” Kliu (znane również jako Wiersz polecenia polecenia) mówi: „może nawet otwierać katalogi ze ścieżek sieciowych (ścieżek UNC)” (z okna Eksploratora).

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

wprowadź opis zdjęcia tutaj

Therube
źródło
3
Ten program jest najbardziej niesamowity!
afrazier
1
Jestem zszokowany zrzutem ekranu, istnieje!
LiuYan
pamiętaj, aby otworzyć dysk //, a nie wersję zamapowaną. Nie powiedzie się na mapowaniu.
twobob
8

Uderzyłem też problem UNC C:\> cd \\somewherew programie C. Znalazłem tę stronę i dowiedziałem się o netpoleceniu: net use x: \\computer name\share namei użyłem go z powodzeniem! Dziękujemy wszystkim, którzy publikują swoje doświadczenia, aby inni mogli się uczyć. :-)

Peter Evans
źródło
1
Tak, ale użycie net usespowoduje mapowanie tej lokalizacji na dysk sieciowy i nie tego chciałem.
Andreas Grech
2
@AndreasGrech, w rzeczywistości pushdteż to robi.
Pacerier
Działa to dobrze w Far+ ConEmu, w przeciwieństwie do pushd.
Dzmitry Lahoda
@Pacerier Ale pushdautomatycznie wybiera literę dysku i odłącza dysk sieciowy, gdy nie jest już potrzebny (po popdlub exit).
Martin
4

Jeśli używasz XP, możesz zajrzeć na tę stronę http://support.microsoft.com/kb/156276

Istnieje wartość rejestru, którą należy dodać, wylogować się, zalogować ponownie ... a teraz plik cmd.exe obsługuje ścieżki UNC. Wydaje mi się, że nadal nie możesz cd do ścieżki, ale możesz użyć jej w innych poleceniach, takich jak reż, kopiuj ...

Alternatywą może być użycie polecenia pushd, które pozwoli ci przełączyć się na udział (myślę, że przypisując mu tymczasową literę dysku) http://support.microsoft.com/kb/317379

BigBlackDog
źródło
Strony, które
dowiązałeś,
Linki działają tutaj. Próbowałeś używać https?
BigBlackDog
-3

Możesz użyć aplikacji HttpFileServer, jest ona „na windows”, bardzo lekka i bardzo łatwa w konfiguracji, pozwala ci współdzielić folder sieciowy UNC (\ server \ share) z protokołem HTTP, a łącza HTTP można używać na dowolnej stronie HTML

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

to niesamowite

Salman
źródło
8
Niezbyt przydatne dla użytkownika wiersza poleceń.
Isaac Rabinovitch
Zgadzam się, że jest to niesamowite oprogramowanie, ale jak można je wykorzystać, aby obejść fakt, że aplikacja do okien CMD nie obsługuje UNC?
Jay Elston,