I am attempting to change directories to a file server such as:
cd \\someServer\\someStuff\
However, I get the following error:
CMD does not support UNC paths as current directories
What are my options to navigate to that directory?
I am attempting to change directories to a file server such as:
cd \\someServer\\someStuff\
However, I get the following error:
CMD does not support UNC paths as current directories
What are my options to navigate to that directory?
If you're considering scripting it, it's always helpful to learn about the pushd
and popd
commands. Sometimes you can't be sure what drives letters are already used on the machine that the script will run on and you simply need to take the next available drive letter. Since net use
will require you to specify the drive, you can simply use pushd \\server\folder
and then popd
when you're finished.
Or you could switch your shell to PowerShell. It has complete support for UNC paths.
You could use net use
to map a network drive to a UNC path and then browse to the mapped drive.
This worked for me in Win8x64:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001
You should be able to do this in HKCU as well, just make sure you log off and back on again.
Pushd Works, but ...
I have been using
pushd "%~dp0\"
at the start of cmd files for longer than I can remember, always with a complementary
popd
at the end of the file. Until recently this was working, when:
Then I got the vague error, if not completely misleading error:
CMD does not support UNC paths as current directories.
Finally, I thought to try
NET USE
To my surprise, I had used all of the drive letters up. After I did
NET USE * /D
I was happy again knowing I had not lost my mind.
Here is my standard cmd prolog:
SETLOCAL EnableExtensions
rem pushd handles Windows dumbness when the command directory is a UNC
rem and we want to use it as the current directory. e.g. click launch a cmd file on the network.
pushd "%~dp0\"
Slightly longer explanation of pushd here: http://shortfastcode.blogspot.com/2010/05/how-to-deal-with-cmd-does-not-support.html
Instead of
cd \\server_name\folder_name
use
pushd \\server_name\folder_name
..EXE path here..
popd
Below code completely worked for me, see the example
@echo off
echo "Email payment to prod payment sync program started"
pushd \\Server_name\it\0a. IT Projects\XYZ Project\Report Builds\Emailpayment to prod payment sync build
"\\Server_name\it\0a. IT Projects\XYZ Project\Report Builds\Emailpayment to prod payment sync build\xyz.exe"
popd
pushd \\Server_name\it\0a. IT Projects\XYZ Project\Report Builds\Daily Invoice report build
"\\Server_name\it\0a. IT Projects\XYZ Project\Report Builds\Daily Invoice report build\XYZ1.exe" %-5
popd
echo "Daily invoice report program ended"
As well as explicitly mapping a drive so that cmd
can cope, which might be needed by other utilities too, you could also try an alternative command shell like PowerShell.
as per @pk use pushd & popd, here is an example.
use pushd to create a temporary virtual drive and after done do a popd to delete the temporary virtual drive
: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
Wouldn't the junction command work here?
Hey, here's one to try...
Go to this page and search for "allow unc path"...will that work?
You have an extra backslash in your UNC. The double backslash BEFORE "someServer" IS appropriate. The double backslash before "someStuff" should be a single backslash, no?
So, try
\\someServer\someStuff\"
NOT
\\someServer\\someStuff\"