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


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

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

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


12
какие окна вы используете? Если это Windows 7, то в вашей системе предварительно установлен PowerShell. Powershell поддерживает unc-paths и cmd-команды (за редким исключением).
wullxz

Вы всегда можете перейти к пути unc через run.
Supercereal

1
@wullxz: ура, я не знал, что вы можете просматривать пути UNC с помощью PowerShell. @kyle: это действительно правильный ответ на мой вопрос :) Но я хочу получить к нему доступ из командной строки. Изменит мой вопрос, чтобы сделать это более понятным.
Андреас Греч

Если ваша проблема заключается в том, что вам нужно работать только из командной строки, вы можете сопоставить сетевой диск с помощью команды «net»: net use x: \\ имя компьютера \ имя общего ресурса
Al Crowley

1
@ Алистер Кроули: Да, я знаю, но я спрашиваю, есть ли более простой способ, который не включает в себя подключение сетевого диска.
Андреас Греч

Ответы:


210

Если вы используете 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>

13
Использование pushdсоздает сопоставление диска с сетевым ресурсом, а затем меняет путь относительно общего ресурса, который он создает. popdотключает долю.
Дов

2
Это не сработало для меня в Windows 10.C:\WINDOWS\system32>pushd \\some\network\path ' ' CMD does not support UNC paths as current directories.
kayleeFrye_onDeck

1
Это просто работает для меня в Windows 10, как странно. Я сделал pushd \\ServerName\home\dir\dir2.
Diziet

3
Родной и элегантный, просто чудо. Работает на Windows , 10
WesternGun

Есть ли хитрость, чтобы заставить его работать, когда учетные данные общего ресурса не совпадают с учетными данными пользователя компьютера?
Перкинс

15

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

введите описание изображения здесь

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


Вы также можете использовать обратную косую черту, если избегаете их обратной косой чертой:cd \\\\server\\share\\subdirectory
user121391

1
Кроме того, если вы попытаетесь использовать завершение табуляции с именами компьютеров, оболочка может заблокироваться на некоторое время, пока имена не будут разрешены.
user121391

это не работает для меня
KansaiRobot

12

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

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

введите описание изображения здесь


3
Эта программа самая классная!
afrazier

1
Я в шоке от скриншота, он существует!
LiuYan 研 研

не забудьте открыть диск //, а не отображенную версию. Это не удастся на карте.
TwoBob

8

Я также столкнулся с проблемой UNC C:\> cd \\somewhereв программе на Си. Нашел эту страницу и узнал о netкоманде: net use x: \\computer name\share nameи успешно ее использовал! Спасибо всем, кто публикует свой опыт для других. :-)


1
Да, но использование net useсопоставит это местоположение с сетевым диском, а это не то, что я хотел.
Андреас Греч

2
@AndreasGrech, на самом деле pushdэто тоже так.
Pacerier

Это хорошо работает в Far+ ConEmu, в отличие от pushd.
Дмитрий Лахода

@Pacerier Но pushdавтоматически выбирает букву диска и отключает сетевой диск, когда он больше не нужен (после popdили exit).
Мартин

4

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

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

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


Страницы, на которые вы
ссылаетесь,

Ссылки работают здесь. Вы пытались использовать https?
BigBlackDog

-3

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

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

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


8
Не очень полезно для пользователя командной строки.
Исаак Рабинович

Я согласен, что это удивительное программное обеспечение, но как его использовать, чтобы обойти тот факт, что оконное приложение CMD не обрабатывает UNC?
Джей Элстон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.