Localiza um arquivo em um caminho de pasta parcialmente conhecido

0

Sou muito novo em arquivos em lote. Eu estou tentando escrever um script para encontrar este arquivo:

<A>\Org\App\<B>\<C>\SQL Scripts\Miscellaneous\CRErrorFinder.exe

onde A é qualquer unidade, B um nome de pasta e C um nome de pasta que deve iniciar a partir de um número conhecido (exemplo: 85).

Exemplo de valor de A: C:

Exemplo de valor de B: TEST

Exemplo de valor de C: 850-0

O que eu tentei: fazer um loop pelas unidades para obter minha pasta de pesquisa de raiz (algo como C: \ Org \ App \ ou D: \ Org \ App \) e usar mais dois loops para B e C. Mas há um caminho mais curto para alcançar o que estou fazendo aqui?

    
por VikkyB 24.05.2018 / 21:19

1 resposta

1

Para parar após o primeiro encontro, tente isto:

@Echo off
Set "Drives=A: C:" 
For %%A in (%Drives%
  ) Do For /D in %%B ("%%~A\Org\App\*"
    ) Do for /D in %%C in ("%%~fB*"
      ) Do if exist "%%~fC\SQL Scripts\Miscellaneous\CRErrorFinder.exe" (
           Set "Find=%%~fC\SQL Scripts\Miscellaneous\CRErrorFinder.exe"
        goto :Found
      )
Echo nothing found
pause
goto :Eof
:Found
Echo Found file:%Find%
    
por 25.05.2018 / 00:09