Linha de comando: Mapear unidade de rede

6

Como escrevo uma linha de comando em um .bat ou .cmd que mapeia uma unidade de rede? Eu quero que o script primeiro verifique se a letra da unidade está mapeada e, se estiver apagada, mapeie a unidade.

Eu só tenho o comando mapping agora. Por favor me ajude a preencher os espaços em branco:

REM Check if drive exists, if it does, delete it

@echo off

net use q: /persistent:yes \localhost\C$\MyFolder

pause

Existe algum dos parâmetros errados? Qualquer um que deveria ser adicionado?

    
por Seb Nilsson 28.05.2009 / 10:49

4 respostas

11

Você pode testar a existência de uma unidade ou pasta testando se o arquivo especial "nul" existe, ou seja,

REM Test if drive exists

IF EXISTS Q:\NUL GOTO Unmap

GOTO Continue

:Unmap

NET USE Q: /DELETE

:Continue

NET USE Q: /persistent:yes \localhost\C$\MyFolder

É claro que, como você vai apagá-lo de qualquer maneira, você pode simplesmente excluí-lo e não se incomodar em verificar a existência primeiro.

    
por 28.05.2009 / 11:04
2

Você pode usar este comando para excluir o mapeamento (sem verificação obrigatória):

net use q: /d
    
por 28.05.2009 / 10:54
2

Não se preocupe em verificar, apenas use "net use q: / delete", que o exclui se existir. Caso contrário, apenas retorna um erro.

Se você executar o script silenciosamente usando um pouco de vb, a mensagem de erro não será exibida (nem a janela dos).

    
por 28.05.2009 / 10:58
0

Exclua a unidade X: com mensagens de erro suprimidas:

net use X: /DELETE 2> nul

Exclua a unidade X: com as mensagens de sucesso e de erro suprimidas:

net use X: /DELETE > nul 2>&1
    
por 21.05.2010 / 22:29