Determine la ruta de red asignada desde la ventana de cmd

26

Tengo una unidad de red asignada a Z:\

¿Existe un comando simple para conocer la ruta de red completa cmd?

Es decir, si se cmdmuestra Z:\ABC\, tenía un comando para mostrar\\networkDrive\MappedDir\ABC

net use está bien, pero me gustaría obtener la ruta completa del directorio de trabajo actual (para copias rápidas).

Ofiris
fuente

Respuestas:

37

Tipo

net use

Lo que le mostrará todas las unidades de red conectadas actualmente.

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network
Darius
fuente
Gracias, ¿conoce alguna forma de obtener la ruta completa del directorio de trabajo actual?
Ofiris
1
¿Qué hay de echo %cd%?
Endoro
@Endoro, echo %cd%genera el directorio actual ( Z:\ABC) y no\\netDrive\ABC
Ofiris
No creo que haya una línea de comando simple que pueda hacer para obtenerla. Es posible que pueda escribir un script por lotes / powershell para hacerlo, pero no he intentado crear uno. Verifique la respuesta de Icarus en: superuser.com/questions/244579/… tal vez pueda usarla según sus necesidades.
Darius
¿Qué pasa con las unidades que no están conectadas actualmente (por ejemplo, a través de una VPN que está desconectada actualmente)?
1

Es una pregunta bastante antigua, pero ... Estaba buscando la misma respuesta exacta que cuando intentaba crear un lote que usaría la ruta UNC a la ubicación real del parche y hacer algunas cosas allí (así que solo copie y pegue en otra ubicación / carpeta y comenzar de nuevo).

Como no pude encontrar una respuesta, encontré una solución, pero no es muy hermosa y ciertamente no es un simple comando. Pero es posible implementar en lote. En CMD sería:

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

Puede copiar las cuatro líneas (mejor 4 + línea vacía) y pegarlas en CMD para obtener un eco inmediato de la ruta para copiarlo.

En lote, lo usarías de manera un poco diferente:

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

La variable% CD% almacena la ruta actual y solo necesita la letra de la unidad, por lo que solo la busca con el comando ENCONTRAR en NET USE. Con los "tokens = 2" (o 3, dependiendo de la salida NET USE) la variable% i almacena la ruta a la letra de unidad que buscó. Después de eso, el segundo comando SET agrega las carpetas que examinó en la unidad de red con% CD: ~ 2% (desplazamiento 2 para cortar la letra de la unidad).

Para el lote, utiliza las variables% ~ d0 o% ~ p0. % 0 almacena la ruta completa del lote en sí (por ejemplo, Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = unidad, p = ruta, f = ruta completa, n = nombre) de lo contrario es similar al comando CMD.

Mykorrhiza
fuente
La muestra es intrigante, pero rota. Por ejemplo , (DO...)falta el ejemplo en lote SET ...y bOriginalPathno está definido en ninguna parte.
matt wilkie
0

La ruta del murciélago puede ser diferente del directorio de trabajo. Entonces necesitamos el primer acercamiento de Mykorrhiza dentro de un murciélago. Para acomodar la situación de estado perdido y también unidades de disco locales, necesitamos verificaciones adicionales. El siguiente es el código de trabajo:

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%

El código anterior funciona en la mayoría de los casos, pero hay casos en los que el uso neto y el hallazgo no funcionan, el siguiente es el método de trabajo finalmente probado:

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%
Franco
fuente
0

Si desea que siempre se muestre en el indicador, puede

set prompt=$M$Q$S$P

que le mostrará su ruta UNC y su ruta basada en la letra de unidad.

Mantequilla de galleta
fuente