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.
batch-file
directory
command-prompt
drive
Ananya
fonte
fonte
\d
(minúsculas) há uma diferença entre os dois? A opção não faz distinção entre maiúsculas e minúsculas?/D
acima 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 (comoFINDSTR
,SORT
etc.) Ferramentas de terceiros, por outro lado, pode utilizar parâmetros de maiúsculas e minúsculas.set "root=/d D:\Work\Root"
ecd %root%
ou mesmoset "root=cd /d D:\Work\Root"
e apenas%root%
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 usarpopd
para voltar.Observe que
pushd
isso 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 opopd
para esse diretório.fonte
Tente isto
Aproveite o enraizamento;)
fonte
Uma sintaxe mais simples pode ser
pushd% root%
fonte