Просмотр пути UNC с помощью Windows CMD без привязки его к сетевому диску

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

Чтобы обойти это, я обычно сопоставляю этот каталог с сетевым диском, и тогда я могу легко получить к нему доступ из командной строки.

Но есть ли более простой способ обойти это?

131
какие окна вы используете? Если это Windows 7, то в вашей системе предустановлен PowerShell. Powershell поддерживает unc-paths и cmd-команды (за некоторыми исключениями). wullxz 13 лет назад 12
Вы всегда можете перейти к пути unc через run. Not Kyle stop stalking me 13 лет назад 0
@wullxz: ура, я не знал, что вы можете просматривать пути UNC с помощью PowerShell. @kyle: это действительно правильный ответ на мой вопрос :) Но я хочу получить к нему доступ из командной строки. Изменит мой вопрос, чтобы сделать это более понятным. Andreas Grech 13 лет назад 1
Если ваша проблема заключается в том, что вам нужно работать только из командной строки, вы можете сопоставить сетевой диск с помощью команды «net»: net use x: \\ имя компьютера \ имя общего ресурса Al Crowley 13 лет назад 0
@ Алистер Кроули: Да, я знаю, но я спрашиваю, есть ли более простой способ, который не включает в себя подключение сетевого диска. Andreas Grech 13 лет назад 1
@ Андреас Греч: Я думал, что это, скорее всего, так, поэтому я поставил это как комментарий, а не как ответ. Al Crowley 13 лет назад 0
Используйте PowerShell, и это работает Kolob Canyon 7 лет назад 0
Связанный: [Как вы обрабатываете «CMD не поддерживает UNC-пути в качестве текущих каталогов»?] (Https://serverfault.com/q/50085/4276) из-за сбоя сервера Cristian Ciupitu 6 лет назад 0
@wullxz Это заслуживает того, чтобы быть ответом. Посмотрите на ответы ниже; "ContextConsole Shell Extension" и "Git Bash" получают несколько голосов. Я думаю, что PowerShell лучше, чем сторонние решения. Franklin Yu 6 лет назад 0
@FranklinYu добавил ответ wullxz 6 лет назад 0

6 ответов на вопрос

182
evanmcdonnal

Если вы используете pushdи popdвместо cdвас не получит эту ошибку UNC.

pushd <UNC path>создаст временный виртуальный диск и залезет в него.
popdудалит временный диск и вернет вас на путь, который вы указали при вводе pushd.

Пример:

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> 
Использование `pushd` создает сопоставление диска с сетевым ресурсом, а затем изменяется на путь относительно общего ресурса, который он создает. `popd` отключает общий доступ. Dov 12 лет назад 10
Это не работает для меня в Windows 10. `C: \ WINDOWS \ system32> pushd \\ some \ network \ path`` '' CMD не поддерживает UNC-пути в качестве текущих каталогов` kayleeFrye_onDeck 7 лет назад 2
Это просто работает для меня в Windows 10, как странно. Я сделал `pushd \\ ServerName \ home \ dir \ dir2`. Diziet 7 лет назад 1
Родной и элегантный, просто чудо. Работает на Windows 10. WesternGun 7 лет назад 3
Есть ли хитрость, чтобы заставить его работать, когда учетные данные общего ресурса не совпадают с учетными данными пользователя компьютера? Perkins 6 лет назад 0
работает отлично. и мне нужно проверить, как поместить такой каталог в Perl-скрипт. Shicheng Guo 6 лет назад 0
@Perkins: я смог использовать runas.exe для запуска PowerShell от имени другого пользователя Jacob Krall 6 лет назад 0
@JacobKrall Это сработало бы, если бы у другого пользователя были правильные учетные данные. Если это совершенно другой набор учетных данных, используйте cmdkey. Perkins 6 лет назад 0
12
therube

«Расширение оболочки ContextConsole» (также называемое Open Command Prompt) говорит, что «может даже открывать каталоги из сетевых путей (UNC-пути)» (из окна проводника).

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

enter image description here

Эта программа самая классная! afrazier 13 лет назад 3
Я в шоке от скриншота, он существует! LiuYan 刘研 12 лет назад 1
не забудьте открыть диск //, а не отображенную версию. Это не удастся на карте. twobob 7 лет назад 0
12
Dan

Для этого я использую Git Bash, так как он уже установлен.

enter image description here

В качестве дополнительного бонуса:
Она также имеет лучшие цвета, давайте мне использовать ls, rmи т.д., и использует правильный слэш для дорожек. :П

Вы также можете использовать обратную косую черту, если экранируете их обратной косой чертой: `cd \\\\ server \\ share \\ subdirectory` user121391 8 лет назад 0
Кроме того, если вы попытаетесь использовать завершение табуляции с именами компьютеров, оболочка может заблокироваться на некоторое время, пока имена не будут разрешены. user121391 8 лет назад 0
у меня не работает KansaiRobot 6 лет назад 0
7
Peter Evans

I also hit the UNC problem with C:\> cd \\somewhere in a C program. Found this page and learnt about the net command: net use x: \\computer name\share name and used it successfully! Thanks to all who post their experiences for others to learn from. :-)

Да, но использование `net use` отобразит это местоположение на сетевой диск, а это не то, что я хотел. Andreas Grech 11 лет назад 1
@AndreasGrech, на самом деле `pushd` тоже так делает. Pacerier 9 лет назад 1
Это хорошо работает в `Far` +` ConEmu`, в отличие от `pushd`. Dzmitry Lahoda 8 лет назад 0
4
BigBlackDog

Если вы используете XP, вы можете взглянуть на этот сайт http://support.microsoft.com/kb/156276

Есть значение реестра, которое вам нужно добавить, выйти из системы, снова войти в систему ... и теперь ваш cmd.exe поддерживает UNC-пути. Мне кажется, что вы все еще не можете перейти к пути, но вы можете использовать его в других командах, таких как dir, copy ...

Альтернативой может быть использование команды pushd, которая позволит вам переключиться на общий ресурс (я думаю, назначив ему временную букву диска) http://support.microsoft.com/kb/317379

Страницы, на которые вы ссылаетесь, кажутся пустыми ... Pacerier 9 лет назад 0
Ссылки работают здесь. Вы пытались использовать https? BigBlackDog 9 лет назад 0
-3
Salman

Вы можете использовать приложение HttpFileServer, оно поверх окон, очень легкое и очень простое в настройке, оно позволяет вам совместно использовать сетевую папку UNC (\ server \ share) с протоколом HTTP, а ссылку HTTP можно использовать на любой странице HTML

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

это удивительно

Не очень полезно для пользователя командной строки. Isaac Rabinovitch 12 лет назад 8
Я согласен, что это удивительное программное обеспечение, но как его использовать, чтобы обойти тот факт, что оконное приложение CMD не обрабатывает UNC? Jay Elston 6 лет назад 0