Como obtenho uma lista dos caminhos completos de cada subpasta .git em uma árvore de diretórios?

1

Não consigo descobrir o conjunto certo de comandos em um prompt de comando do Windows FOR /? ou bash sl para fazer isso.

O seguinte arquivo em lote que eu escrevi demonstra o que eu quero, mas eu gostaria de saber se há uma maneira de fazer isso sem um arquivo em lotes.

@echo off
for /r %%i in (.) do if %%~nxi==.git echo %%i

Parece que devo poder emitir um comando DIR com uma combinação de / s / b e / ad para fazer isso. Estou disposto a filtrar através do grep ou FIND se precisar.

Obviamente, não preciso de uma solução que exija um script, pois já o tenho, conforme demonstrado acima.

Além disso, o Powershell pode ser um candidato, desde que seja um comando simples.

    
por Daisha Lynn 18.08.2017 / 05:24

1 resposta

0

O seguinte arquivo em lote que eu escrevi demonstra o que eu quero

but I would like to know if there's a way to do it without a batch file.

@echo off
for /r %%i in (.) do if %%~nxi==.git echo %%i

Você pode fazer isso a partir da linha de comando fazendo as seguintes alterações:

  1. Substitua %% por %

  2. Substitua if por @ if 'para remover a saída supérflua

Então o comando se torna:

for /r %i in (.) do @if %~nxi==.git echo %i

Se a saída tiver mais de uma tela, você poderá:

  • Canalize a saída para more

    for /r %i in (.) do @if %~nxi==.git echo %i | more
    

Ou:

  • Redirecione a saída para um arquivo e examine-a depois.

    for /r %i in (.) do @if %~nxi==.git echo %i > output.txt
    more output.txt
    
por 20.08.2017 / 09:49

Tags