Listar pastas no CMD que NÃO possuem uma subpasta específica

0

Eu tenho um problema onde eu preciso localizar todas as pastas em uma unidade que não tem uma pasta nelas chamada "Arg" .. Eu sei como fazê-lo em sentido inverso usando DIR, ou seja, para encontrar todas as subpastas com um nome específico, mas como eu preciso do oposto disso .. eu confio na sabedoria do superusuário para me ajudar.

Obrigado.

    
por Aryat Mapreh 11.02.2016 / 12:29

2 respostas

0

Acho que FOR / IF NOT EXIST são seus amigos, neste caso ...

Para subpastas imediatas da pasta atual ...

for /d %A in (*) do @if not exist "%~fA\Arg\*" echo %~fA

Ou recursivamente, da pasta atual para baixo ...

for /d /r %A in (*) do @if not exist "%~fA\Arg\*" echo %~fA

Ou recursivamente, de um determinado caminho ...

for /d /r X:\pathto %A in (*) do @if not exist "%~fA\Arg\*" echo %~fA

Por outro lado ...

for /d %A in (*) do @if exist "%~fA\Arg\*" echo %~fA
for /d /r %A in (*) do @if exist "%~fA\Arg\*" echo %~fA
for /d /r X:\pathto %A in (*) do @if exist "%~fA\Arg\*" echo %~fA

Em um arquivo de lote, você precisa escapar do símbolo % ...

for /d %%A in (*) do @if exist "%%~fA\Arg\*" echo %%~fA
for /d /r %%A in (*) do @if exist "%%~fA\Arg\*" echo %%~fA
for /d /r X:\pathto %%A in (*) do @if exist "%%~fA\Arg\*" echo %~fA

for /d %%A in (*) do @if not exist "%%~fA\Arg\*" echo %%~fA
for /d /r %%A in (*) do @if not exist "%%~fA\Arg\*" echo %%~fA
for /d /r X:\pathto %%A in (*) do @if not exist "%%~fA\Arg\*" echo %~fA

Se você está fazendo isso regularmente, talvez uma macro ...

doskey nosubdir=for /d %A in (*) do @if not exist "%~fA\$*\*" echo %~fA
doskey nosubdirrec=for /d /r %A in (*) do @if not exist "%~fA\$*\*" echo %~fA
...
cd /d x:\pathto
nosubdir Arg
nosubdirrec Arg
    
por 30.03.2017 / 14:45
0

Sevocêpuderexecutarodiretóriorecursivoeredirecionarsuasaídaparaumarquivo,estaránametadedocaminho.Orestopodeserfeitocomocomandofindqueprocuraporlinhasquecontenhamounãocontenhamastringdada.

Aquieulisteimeusdiretóriosemmydirs.lst.Primeiro,procureidiretóriosquecontinhamastring"Links", depois fiz o oposto usando a opção / v.

    
por 11.02.2016 / 12:54