Determina il percorso di rete mappato dalla finestra cmd


26

Ho un'unità di rete - mappata a Z:\

Esiste un semplice comando per conoscere il percorso completo della rete cmd?

Vale a dire se cmdmostra Z:\ABC\, avevo un comando per l'output\\networkDrive\MappedDir\ABC

net use va bene, ma vorrei ottenere il percorso completo della directory di lavoro corrente (per copie rapide).

Risposte:


37

genere

net use

Che ti mostrerà tutte le unità di rete attualmente connesse.

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network

Grazie, conosci un modo per ottenere il percorso completo della directory di lavoro corrente?
Ofiris,

1
Che dire echo %cd%?
Endoro,

@Endoro, visualizza echo %cd%la directory corrente ( Z:\ABC) e non\\netDrive\ABC
Ofiris

Non penso che ci sia una semplice riga di comando che puoi fare per ottenerlo. Potresti essere in grado di scrivere uno script batch / powershell per farlo, ma non ho provato a crearne uno. Controlla la risposta di Icarus su: superuser.com/questions/244579/… forse puoi usarla per le tue necessità.
Dario il

Che dire delle unità che non sono attualmente connesse (ad es. Tramite una VPN che è attualmente disconnessa)?

1

È 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.


il campione è intrigante, ma rotto. Ad esempio, l'esempio (DO...)batch non è presente SET ...e bOriginalPathnon è definito da nessuna parte.
matt wilkie,

0

Il percorso della mazza può essere diverso dalla directory di lavoro. Quindi abbiamo bisogno del primo approccio di Mykorrhiza all'interno di una mazza. Per far fronte alla situazione di stato mancante e anche alle unità disco locali, sono necessari ulteriori controlli. Di seguito è riportato il codice di lavoro:

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%

Il codice sopra funziona nella maggior parte dei casi, ma ci sono casi in cui l'uso della rete e la ricerca non funzionano, il seguente è il metodo di lavoro finalmente testato:

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

Se vuoi che venga sempre visualizzato al tuo prompt, puoi farlo

set prompt=$M$Q$S$P

che ti mostrerà il tuo percorso UNC e il tuo percorso basato sulla lettera di unità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.