O CMD encontra uma pasta específica em subpastas e CD nele

1

Estou mexendo um pouco com o CMD e tenho uma pasta chamada images na minha unidade D e a pasta é armazenada em várias subpastas. Quero executar um comando CMD que procure a pasta e depois o CD nela.

Este é o meu comando atual:

DIR /A-D /B /S "images"

Ele encontra o caminho para as imagens, mas é sobre o quão longe eu consegui chegar até agora, como posso entrar nesse caminho usando o comando acima?

TheTrine
fonte
11
o atributo /A-Dprocurará arquivos, não diretórios.
LotPings

Respostas:

1

Como o LotPings mencionou em seu comentário, há alguns pequenos problemas com a maneira como você está usando a /Aopção em seu comando. Na verdade, deve ser /ADporque -Dsignifica excluir diretórios.

Uma vez corrigido, você pode agrupar seu comando em um forloop como abaixo:

for /f "delims=" %a in ('DIR /AD /B /S "images"') do cd "%a"

Se você quiser usar isso em um arquivo em lotes, precisará escapar do %outro %com o seguinte:

for /f "delims=" %%a in ('DIR /AD /B /S "images"') do cd "%%a"

Embora você possa obter apenas um resultado do seu dircomando, o forloop facilita a obtenção dessas informações em uma variável. Isso causaria alguns problemas se você tivesse mais de uma pasta "imagens" em sua estrutura de diretórios. Nesse caso, você precisaria adicionar alguma lógica para descobrir qual é a que você deseja.

Leitura adicional:

Worthwelle
fonte
2
Em DIR interruptores especificando um atributo, que começam com /A, tal como um D (pastas), H (oculto), etc, do cólon para um resultado incluído é opcional, assim, DIR /A:De DIR /ADsão equivalentes. O traço para um resultado exclusivo não é opcional.
Michael Harvey