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.