Arquivo em lote para alternar locais de disco mapeados

0

Eu tenho que mudar meu disco mapeado porque eu trabalho em dois servidores e não quero alterar os caminhos armazenados em arquivos que eu modifico.

Geralmente ambos os locais são mapeados como P: na minha empresa.
Eu só me pergunto como fazer algo assim. Posso obter sua ajuda?

Eu tenho dois net use:

NET USE P: /d
NET USE L: \\PLKRKXXXX.XXX.XX\Assignment
NET USE P: \\SEXXXXX\Projekt\

Eu corro o script para mapear como letra P:

  1. se não houver uma unidade mapeada com P: script faça vamos dizer primeiro

    NET USE P: \\PLKRKXXXX.XXX.XX\Assignment
    
  2. se já houver unidade mapeada como P: o script define o uso real da rede como letra L: e o segundo define como P: e quando executo esse script novamente, ele muda de local para L e P mapeados pela unidade, já que ele apenas os alterna.

Eu uso dois scripts de lote simples agora que parecem com acima, mas eu sei que é possível usar algumas condições para que ele funcione melhor.

Não é importante para mim, se vai ser o script de morcego ou vbs ou o que eu quero fazer com um ícone.

EDITAR: Eu tentei suas variações e talvez eu não estivesse claro o suficiente. Ambos os locais (servidores) estão disponíveis toda vez, mas eu tenho que alternar entre eles. Depois de trabalhar no meu servidor local e uma vez no servidor externo. Mas ambos são mapeados como P: (para cada usuário), então eu preciso mudar (depende de qual projeto eu estou trabalhando agora). Eu posso assumir a prioridade como você sugere (mas não há grande problema se eu for capaz de alternar com o script run novamente). De qualquer forma obrigado pelo seu esforço.

Eu corro script e depois:

Caso 1a: Eu tenho discos mapeados como abaixo

P: \\SEXXXXX\Projekt\ and L: \\PLKRKXXXX.XXX.XX\Assignment

quando script é feito - basta mudá-los para:

L: \\SEXXXXX\Projekt\ and P: \\PLKRKXXXX.XXX.XX\Assignment

case 1b: (Eu corro o script novamente) então eu comecei no começo:

L: \\SEXXXXX\Projekt\ and P: \\PLKRKXXXX.XXX.XX\Assignment

depois que eu corro de novo ele vai voltar para começar

P: \\SEXXXXX\Projekt\ and L: \\PLKRKXXXX.XXX.XX\Assignment

case 2: (eu não tenho mapeado P: drive) então roteiro do mapeamento

P: \\PLKRKXXXX.XXX.XX\Assignment
Krzysztof Psujek
fonte

Respostas:

1

Como sobre esta abordagem.

É claro que, se você tiver apenas um compartilhamento de rede disponível, você deseja que ele seja mapeado como P: Agora você precisa decidir sobre a prioridade. Qual unidade você mapeia para P: quando ambos os compartilhamentos de rede estão disponíveis? Vamos supor que você decide que \\SEXXXXX\Projekt\ Obtém prioridade sobre \\PLKRKXXXX.XXX.XX\Assignment

Então simplesmente use:

NET USE P: /DELETE
NET USE L: /DELETE
NET USE P: \\SEXXXXX\Projekt\ && NET USE L: \\PLKRKXXXX.XXX.XX\Assignment || NET USE P: \\PLKRKXXXX.XXX.XX\Assignment

A chave aqui é o uso de execução condicional com && e ||

Art Gertner
fonte
0

Você pode usar exist para verificar se existe uma letra de unidade:

if exist P: (
    echo Drive P exists 
    NET USE P: /d
    NET USE L: \\PLKRKXXXX.XXX.XX\Assignment
    NET USE P: \\SEXXXXX\Projekt\
) else (
    echo Drive P does not exist
    NET USE P: \\PLKRKXXXX.XXX.XX\Assignment
)
Berend
fonte