Encontre diretórios com correspondência de arquivo 1, mas não com correspondência de arquivo 2

0

Eu sinto que deveria ter conseguido encontrar isso com o googling / pesquisa simples aqui, mas não consegui ... Basicamente o mesmo que esta pergunta de em AU mas para Windows.

Eu quero encontrar diretórios que tenham um arquivo com nome incluindo (por exemplo) 02 ou 03 mas não tenham um arquivo com um nome incluindo %código%. Eu prefiro um comando CLI legal, mas estou aberto para instalar qualquer coisa menos que o Ubuntu (ou outra distribuição * nix).

Por exemplo:

\music\The Irish Roves\Hardstuff\
    01 - All Sing Together.mp3
    02 - Paddy On The Turnpike.mp3
    ...
    \shouldn't match that folder
\music\Garth Brooks\Ropin' The Wind\
   03 - What She's DOing Now.mp3
   \but should match this one
    
por Nick Wilde 11.06.2014 / 01:28

1 resposta

1

Descobri como fazer isso.

Requer o programa gratuito da Microsoft Powershell . Basta instalar isso e, em seguida, o comando é:

Cmd:

$a = gci path/to/look/at -r | ? {$_.PSIsContainer -eq $True} | ? {$_.GetFiles().Count -ne 0} 
$a = $a | ? {Test-Path($_.fullname+"\*02*")}  | ? {(Test-Path($_.fullname+"\*01*")) -eq $False} 
$a | select FullName

Você também pode fazer isso como um oneliner, mas escreveu várias linhas para facilitar a leitura aqui.

Esse cmd também está usando alguns atalhos; gci = Get-ChildItem e ? = Where-Object e select = SelectObject .

Obrigado a arielnmz por me apontar na direção certa

    
por 14.06.2014 / 05:53