26

I have a network drive - mapped to Z:\

Is there a simple command to know the full network path from cmd ?

I.e. if cmd shows Z:\ABC\, I had like a command to output \\networkDrive\MappedDir\ABC

net use is fine but I would like to get the full path of the current working directory (for quick copies).

37

Type

net use

Which will shows you all currently connected network drive.

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network
  • Thanks, do you know a way to get the full path of the current working directory? – Ofiris May 27 '13 at 11:23
  • 1
    What about echo %cd% ? – Endoro May 27 '13 at 14:53
  • @Endoro, echo %cd% outputs the current directory (Z:\ABC) and not \\netDrive\ABC – Ofiris May 30 '13 at 7:59
  • I don't think there is a simple command line you can do to get it. You may be able to write a batch / powershell script to do it, but I haven't tried to make one. Check the answer from Icarus on: superuser.com/questions/244579/… maybe you can use it to your need. – Darius Jun 6 '13 at 19:20
  • What about drives which are not currently connected (e.g., over a VPN which is currently disconnected)? – user49214 Aug 11 '15 at 16:59
1

It's quite an old question but.. I was looking for the exact same answer as I was trying to create a batch that will use the UNC path to the actual location of the patch and do some things there (so only copy&paste to another location/folder and start again).

As I couldn't find an answer I found a solution myself, but it's not very beautiful and certainly not a simple command. But it's possible to implement in batch. On CMD it would be:

FOR /F "tokens=2" %i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%i)
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

You can copy the four lines (better 4+empty line) and paste them into CMD to get an imidiate echo of the path to copy it.

In batch you would use it a bit differently:

FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%~d0"') DO (
      bNetworkPath=%%i)
SET bCheckPath=!bOriginalPath!%~p0

The variable %CD% stores the current path and you need only the drive letter so you only search for that with the FIND command in NET USE. With the "tokens=2" (or 3, depending on NET USE output) the %i variable stores the path to the drive letter you searched for. After that the second SET command adds the folders you browsed on the network drive with %CD:~2% (offset 2 to cut off the drive letter).

For batch you use the %~d0 or %~p0 variables. %0 stores the full path of the batch itself (e. g. Z:\temp\test.bat ; %~d0 = Z: ; %~p0 = \temp\ ; d = drive, p = path, f = full path, n = name) otherwise it's similar to the CMD command.

  • the sample is intriguing, but broken. For example the (DO...) in batch example is missing SET ..., and bOriginalPath is not defined anywhere. – matt wilkie Jul 14 '16 at 22:04
0

The path of the bat may be different from the working directory. So we need Mykorrhiza's first approach inside a bat. To accommodate the situation of missing status and also local disk drives, we need additional checks. The following is the working code:

SET cNetworkPath=    
FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%%i)
if "%cNetworkPath%" == "%CD:~0,2%" (
  FOR /F "tokens=3" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
        SET cNetworkPath=%%i)
)
if "%cNetworkPath%" == "" set cNetworkPath=%CD:~0,2%
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

The above code works in most cases, but there are cases where the net use and the find do not work, the following is the finally tested work method:

SET cNetworkPath=
for /f "tokens=2" %%i in ('wmic path win32_mappedlogicaldisk get deviceid^, providername ^| findstr "%CD:~0,2%"') do (set cNetworkPath=%%i)
echo %cNetworkPath%
0

If you want it to always display it at your prompt, you could

set prompt=$M$Q$S$P

which will show you your UNC path and your drive letter based path.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.