Digite
net use
O que mostrará todas as unidades de rede atualmente conectadas.
OK Z: \127.0.0.1\c$ Microsoft Windows Network
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).
Digite
net use
O que mostrará todas as unidades de rede atualmente conectadas.
OK Z: \127.0.0.1\c$ Microsoft Windows Network
É 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.
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%