Curinga para todos os subdiretórios ou todos os diretórios descendentes na linha de comandos do Windows

7

Eu estou faltando o caractere curinga para diretórios. Do linux tenho em mente que se pode definir um caminho como este:

jslint scripts/**/*.js

que inclui todos os arquivos js de todos os diretórios descendentes na árvore de diretórios de scripts.

jslint scripts/*/*.js

inclui todos os subdiretórios diretos de scripts /.

Na linha de comando do Windows, isso parece não funcionar. Existe alguma maneira de definir o mesmo?

    
por chiccodoro 18.11.2011 / 12:44

2 respostas

5

não há 'cos * or *.* no windows, lista arquivos e diretórios, mas você não pode fazer c:\blah\*\*

Você pode fazer

C:\tes>for /r %f in (*.mp3) do @echo mp3prog %f
mp3prog C:\tes\a.mp3
mp3prog C:\tes\mof.mp3
mp3prog C:\tes\qw.mp3
mp3prog C:\tes\y\a.mp3

C: \ tes >

Então você pode substituir o * .mp3 pelo * .js e pelo mp3prog pelo jslint, que podem dar o que você deseja.

E remova o @echo

Tanto * quanto *.* nesses colchetes funcionam bem.

Você vê que lista todos os comandos que seriam executados. Ele passa por todos os arquivos em c: \ tes e todos os seus subdiretórios.

Ou de qualquer diretório

C:\>for /r c:\tes %f in (*.*) do @echo mp3prog %f
mp3prog c:\tes3.gif
mp3prog c:\tes\a.mp3
mp3prog c:\tes\mof.mp3
mp3prog c:\tes\oo.mpg
mp3prog c:\tes\qw.mp3
mp3prog c:\tes\t.mpg
mp3prog c:\tes\ta.mpg
mp3prog c:\tes\t_.mpg
mp3prog c:\tes\u.mpg
mp3prog c:\tes\uu.mpg
mp3prog c:\tes\y\a.mp3

C:\>

ou

C:\>for /f %f in ('dir c:\tes /s/b') do @echo mp3prog %f
mp3prog c:\tes3.gif
mp3prog c:\tes\a.mp3
mp3prog c:\tes\ff
mp3prog c:\tes\gg
mp3prog c:\tes\mof.mp3
mp3prog c:\tes\oo.mpg
mp3prog c:\tes\qw.mp3
mp3prog c:\tes\t.mpg
mp3prog c:\tes\ta.mpg
mp3prog c:\tes\t_.mpg
mp3prog c:\tes\u.mpg
mp3prog c:\tes\uu.mpg
mp3prog c:\tes\y
mp3prog c:\tes\y\a.mp3

C:\>
    
por 18.11.2011 / 14:52
1

Nesse caso específico, tudo o que você precisa fazer é especificar o nome do diretório raiz em vez de usar curingas. Pelo menos, isso vale para o jshint, que é mais popular agora que o jslint.

jshint scripts

Ou:

cd scripts
jshint .

Veja também (que inclui o truque útil de barlop aplicado ao jshint): link

    
por 08.05.2015 / 04:31