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 nos arquivos que eu modifico.

Geralmente, os dois 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 a letra P:

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

    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 agora dois scripts em lote simples, semelhantes aos acima, mas sei que é possível usar algumas condições para que ele funcione melhor.

Não é importante para mim se será um script de morcego ou vbs ou qualquer coisa que eu queira fazer com um único í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 mudá-lo novamente com o script de execução). 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 o script é concluído, basta mudá-lo para:

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

caso 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 voltará para começar

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

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

P: \PLKRKXXXX.XXX.XX\Assignment
    
por Krzysztof Psujek 22.09.2017 / 10:30

2 respostas

1

Que tal esta abordagem?

É claro que, se você tiver apenas um compartilhamento de rede disponível, será mapeado como P: Agora você precisa decidir 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\ tem prioridade sobre \PLKRKXXXX.XXX.XX\Assignment

Em seguida, basta usar:

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 da execução condicional com && e ||

    
por 22.09.2017 / 11:00
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
)
    
por 22.09.2017 / 10:57