Как вы справляетесь с «CMD не поддерживает UNC-пути в качестве текущих каталогов»?


24

Я пытаюсь изменить каталоги на файловый сервер, такой как:

cd \\someServer\\someStuff\

Однако я получаю следующую ошибку:

CMD не поддерживает пути UNC как текущие каталоги

Какие есть варианты для перехода в этот каталог?


Ответы:


34

Если вы рассматриваете сценарии его, это всегда полезно узнать о pushdи popdкомандах. Иногда вы не можете быть уверены, какие буквы дисков уже используются на компьютере, на котором будет запускаться скрипт, и вам просто нужно взять следующую доступную букву диска. Поскольку net useвам потребуется указать диск, вы можете просто использовать, pushd \\server\folderа затем, popdкогда вы закончите.


Если вы укажете '*' вместо буквы диска, net use будет использовать первую доступную проверку диска из ZA. поэтому «net use * \\ server \ share» без
— привязки

Но тогда вы не знаете, какая буква диска была назначена для целей остальной части сценария.
— tomfanning

@tomfanning Вы можете найти букву диска с помощью этого (wmic logicdisk get caption, имя провайдера, тип диска, имя_ообщения) из командной строки, а затем проанализируйте вывод в поисках вашего \\ servername \ sharename. serverfault.com/questions/62578/…
— Крис Магнусон

1
@pk. Что если сценарий потерпел крах до того, как запустил ваш popd?
— Pacerier

15

Или вы можете переключиться на PowerShell . Он имеет полную поддержку путей UNC.


За исключением случаев, когда explorer.exe содержит дескриптор файла, который вы пытаетесь удалить. Даже с закрытым окном проводника, я думаю, что провайдер PS FileSystem (при условии, что это провайдер), вероятно, использует explorer.exe под капотом. или вы говорите, что есть способ использовать UNC без провайдера?
— JohnZaj

11

Вы можете использовать net useдля сопоставления сетевого диска путь UNC, а затем перейдите к подключенному диску.


2
Правда, это единственный способ сделать это из командной строки, но будьте осторожны в использовании этого для чего угодно, кроме одноразовых команд (то есть вещей, которые вы делаете только один раз), потому что в противном случае вы столкнетесь с проблемами, когда диск не подключен или сопоставлены, но не подключены, и несколько имен пользователей :(
— Марк Хендерсон

1
Вы не можете перейти в этот каталог, но вы все равно можете использовать его в командах: dir \\ someserver \ stuff call \\ someserver \ stuff \ what.bat
— Benoit

1
На самом деле, вы можете использовать \\ someserver \ share ... для этого вам просто необходим reg-hack :-)
— Барт Сильверстрим,

@BartSilverstrim, как?
— Pacerier


1

Помимо явного сопоставления диска, чтобы он cmdмог справиться, что может понадобиться и другим утилитам, вы также можете попробовать альтернативную командную оболочку, например PowerShell.


1

Это работало для меня в Win8x64:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

Вы должны быть в состоянии сделать это и в HKCU, просто убедитесь, что вы вышли из системы и снова включились.


1

согласно @pk используйте pushd & popd, вот пример.

используйте pushd для создания временного виртуального диска и после этого выполните команду popd для удаления временного виртуального диска

:selectFolder
REM Confirm which Folder structure
set /p location="Delete files for which QA environment: (P)retoria, (C)ape, (L)uanda or (Q)uit? (C/L/P/Q)"
REM  I option allows for upper and lower case
if /I "%location%"=="C" set folder="\\Tfwcqa\tfwcqa\EORDERS"
if /I "%location%"=="L" set folder="\\Tfluaqa\tfluaqa\EORDERS"
if /I "%location%"=="P" set folder="\\Tfptaqa\tfptaqa\EORDERS"
if /I "%location%"=="Q" goto endBatch

REM you can not cd to a network drive so we use pushd to create a temporary virtual drive
REM cd /d %folder%
pushd %folder%

DIR /S

REM popd deletes the temporary virtual drive
popd

0

Не сработает ли здесь команда перехода ?


1
Не думаю, что соединение работает только для локальных каталогов.
— Берземус

Это работает? Из статьи в Википедии: «Точки соединения могут ссылаться только на каталоги на локальном томе; точки соединения с удаленными общими папками не поддерживаются».
— Питер Мортенсен

@#%!# вы правы. Я думал, что это было похоже на команду mount, забыл, что у меня была эта проблема, когда я изучал ее два года назад. Вздох Извините ...
— Барт Сильверстрим

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.