Como alterar o diretório de trabalho atual usando um arquivo em lote


110

Preciso de ajuda para escrever um arquivo em lote. Eu tenho um caminho armazenado em uma raiz variável da seguinte maneira:

set root=D:\Work\Root

Então, estou mudando meu diretório de trabalho para esta raiz da seguinte maneira:

cd %root%

Quando executo este arquivo em lote de qualquer lugar na unidade D, isso é feito com êxito. Mas quando executo o mesmo arquivo em lote de outra unidade, cd% root% não funciona.

Existe uma maneira de obter a letra da unidade da variável raiz? Posso então mudar o diretório atual para esta unidade primeiro e, em seguida, cd% root% deve funcionar.

Respostas:


160

Especifique /Dpara alterar a unidade também.

CD /D %root%

1
Outras respostas dizem \d(minúsculas) há uma diferença entre os dois? A opção não faz distinção entre maiúsculas e minúsculas?
Joseph

3
@josch: Sim, se estamos falando sobre os comandos internos do CMD, os parâmetros de troca como /Dacima não diferenciam maiúsculas de minúsculas ( /D= /d), assim como os próprios comandos ( CD= cd). Acredito que também é válido para todos os utilitários externos do Windows de linha de comando (como FINDSTR, SORTetc.) Ferramentas de terceiros, por outro lado, pode utilizar parâmetros de maiúsculas e minúsculas.
Andriy M

não vale uma resposta própria, mas você pode set "root=/d D:\Work\Root"e cd %root%ou mesmo set "root=cd /d D:\Work\Root"e apenas%root%
Stephan

40

Use apenas cd /d %root%para trocar letras de driver e alterar diretórios.

Como alternativa, use pushd %root%para alternar letras de unidade ao alterar diretórios, bem como armazenar o diretório anterior em uma pilha para que você possa usar popdpara voltar.

Observe que pushdisso também permitirá que você altere os diretórios para um compartilhamento de rede. Na verdade, ele mapeará uma unidade de rede para você e, em seguida, removerá o mapeamento quando você executar o popdpara esse diretório.


29

Tente isto

chdir /d D:\Work\Root

Aproveite o enraizamento;)


6
Rooting? O que isso significa neste contexto?
Mathias Lykkegaard Lorenzen

Deve-se observar que antes e depois do diretório, "deve ser colocado assim; chdir / d" D: \ Work \ Root "
Ad Infinitum

12

Uma sintaxe mais simples pode ser

pushd% root%


3
Uau, de todas as soluções, a classificação mais baixa é a que realmente funcionou perfeitamente! Obrigado!
Arto Kalishian
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.