Determina o caminho de rede mapeado a partir da janela cmd

26

Eu tenho uma unidade de rede - mapeada para Z:\

Existe um comando simples para saber o caminho completo da rede em cmd ?

Ou seja. se cmd mostrar Z:\ABC\ , eu tive como um comando para gerar \networkDrive\MappedDir\ABC

net use é bom, mas eu gostaria de obter o caminho completo do diretório de trabalho atual (para cópias rápidas).

    
por Ofiris 27.05.2013 / 12:13

3 respostas

36

Digite

net use

O que mostrará todas as unidades de rede atualmente conectadas.

OK           Z:        \127.0.0.1\c$            Microsoft Windows Network
    
por 27.05.2013 / 13:20
1

É uma pergunta bastante antiga, mas ... Estava procurando a mesma resposta exata que eu estava tentando criar um lote que usaria o caminho UNC para a localização real do patch e fazer algumas coisas lá (portanto, somente copy & cole em outro local / pasta e comece de novo).

Como não encontrei uma resposta, encontrei uma solução, mas não é muito bonita e certamente não é um simples comando. Mas é possível implementar em lote. No CMD, seria:

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

Você pode copiar as quatro linhas (melhor 4 + linha vazia) e colá-las no CMD para obter um eco imidiate do caminho para copiá-lo.

Em lote, você usaria isso de maneira um pouco diferente:

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

A variável% CD% armazena o caminho atual e você precisa apenas da letra da unidade para que você pesquise apenas com o comando FIND no NET USE. Com os "tokens = 2" (ou 3, dependendo da saída do NET USE), a variável% i armazena o caminho para a letra da unidade pesquisada. Depois disso, o segundo comando SET adiciona as pastas que você navegou na unidade de rede com% CD: ~ 2% (deslocamento 2 para cortar a letra da unidade).

Para lote, você usa as variáveis% ~ d0 ou% ~ p0. % 0 armazena o caminho completo do próprio lote (por exemplo, Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = drive, p = caminho, f = caminho completo, n = name) caso contrário, é semelhante ao comando CMD.

    
por 18.12.2015 / 15:22
0

O caminho do morcego pode ser diferente do diretório de trabalho. Então, precisamos da primeira abordagem de Mykorrhiza dentro de um morcego. Para acomodar a situação de status ausente e também unidades de disco locais, precisamos de verificações adicionais. O seguinte é o código de trabalho:

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%

O código acima funciona na maioria dos casos, mas há casos em que o uso da rede e a localização não funcionam, o seguinte é o método de trabalho finalmente testado:

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%
    
por 12.09.2016 / 16:30