È una domanda piuttosto vecchia ma ... stavo cercando la stessa identica risposta mentre stavo cercando di creare un batch che utilizzerà il percorso UNC per l'ubicazione effettiva della patch e fare alcune cose lì (quindi copia e incolla solo in un'altra posizione / cartella e ricominciare).
Dato che non sono riuscito a trovare una risposta, ho trovato una soluzione me stesso, ma non è molto bello e certamente non è un comando semplice. Ma è possibile implementare in batch. Su CMD sarebbe:
FOR /F "tokens=2" %i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
SET cNetworkPath=%i)
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%
È possibile copiare le quattro righe (meglio 4 + riga vuota) e incollarle in CMD per ottenere un'eco imidiata del percorso per copiarla.
In batch lo useresti in modo leggermente diverso:
FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%~d0"') DO (
bNetworkPath=%%i)
SET bCheckPath=!bOriginalPath!%~p0
La variabile% CD% memorizza il percorso corrente ed è necessaria solo la lettera dell'unità in modo da cercarla solo con il comando FIND in NET USE. Con "token = 2" (o 3, a seconda dell'output NET USE), la variabile% i memorizza il percorso della lettera di unità cercata. Dopodiché il secondo comando SET aggiunge le cartelle che hai esplorato sull'unità di rete con% CD: ~ 2% (offset 2 per tagliare la lettera di unità).
Per il batch si utilizzano le variabili% ~ d0 o% ~ p0. % 0 memorizza l'intero percorso del batch stesso (ad es. Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = unità, p = percorso, f = percorso completo, n = nome) altrimenti è simile al comando CMD.