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

<p>я пытаюсь изменить каталоги на файловый сервер, такой как:</p><pre><code>cd \\someserver\\somestuff\ </code></pre><p>однако я получаю следующую ошибку:</p><blockquote> <p>cmd не поддерживает пути unc как текущие каталоги</p> </blockquote><p>какие есть варианты для перехода в этот каталог?</p>

<p>если вы планируете написать сценарий, всегда полезно узнать о командах <code>pushd</code> и <code>popd</code>. иногда вы не можете быть уверены, какие буквы дисков уже используются на компьютере, на котором будет запускаться скрипт, и вам просто нужно взять следующую доступную букву диска. поскольку <code>net use</code> вам потребуется указать диск, вы можете просто использовать <code>pushd \\server\folder</code> и затем <code>popd</code>, когда вы закончите.</p>

<p>или вы можете переключить свою оболочку на <a href="http://en.wikipedia.org/wiki/windows\_powershell">powershell</a> . он имеет полную поддержку путей unc.</p>

<p>вы могли бы использовать <code>net use</code> для сопоставления сетевого диска с путем unc, а затем перейдите к подключенному диску.</p>

<p>чуть более длинное объяснение pushd здесь: <a href="http://shortfastcode.blogspot.com/2010/05/how-to-deal-with-cmd-does-not-support.html">http://shortfastcode.blogspot.com/2010/05/how-to-deal-with-cmd-does-not-support.html</a> </p>

<p>это работало для меня в win8x64:</p><pre><code>[hkey\_local\_machine\software\microsoft\command processor] "disableunccheck"=dword:00000001 </code></pre><p>вы должны быть в состоянии сделать это и в hkcu, просто убедитесь, что вы вышли и снова включились.</p>

<p>помимо явного сопоставления диска, чтобы <code>cmd</code> мог справиться, что может понадобиться и другим утилитам, вы также можете попробовать альтернативную команду shell, например powershell.</p>

<p>согласно @pk используйте pushd & popd, вот пример.</p><p>используйте pushd для создания временного виртуального диска и после этого выполните команду popd для удаления временного виртуального диска</p><pre><code>: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 </code></pre>

<p>эй, вот один, чтобы попробовать ...</p><p>перейдите на <a href="http://ss64.com/nt/cmd.html">эту страницу</a> и найдите "allow unc path" ... это будет работать?</p><p>там больше фона <a href="http://blogs.msdn.com/oldnewthing/archive/2007/02/15/1683851.aspx">здесь</a> и <a href="http://support.microsoft.com/kb/156276">здесь</a> </p>

<p>у вас есть дополнительный обратный слеш в вашем unc. двойная обратная косая черта до "someserver" is уместна. двойная обратная косая черта перед "somestuff" должна быть одинарной обратной косой чертой, не так ли?</p><p>поэтому постарайтесь</p><p>\\ someserver\somestuff \"</p><p>не</p><p>\\ someserver \\ somestuff \"</p>

<p>разве <a href="http://en.wikipedia.org/wiki/ntfs\_junction\_point">команда соединения</a> не будет работать здесь?</p>