7

I am missing the wildcard character for directories. From linux I have in mind that one can define a path like this:

jslint scripts/**/*.js

which includes all js files from all descendent directories in the scripts directory tree.

jslint scripts/*/*.js

includes all direct subdirectories of scripts/.

In the windows command line this seems not to work. Is there any way to define the same?

5

there isn't 'cos * or *.* in windows, lists files and directories but you can't do c:\blah\*\*

You can do

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>

So you could replace *.mp3 with *.js and mp3prog with jslint that might give what you want.

And remove the @echo

Either * or *.* in those brackets works fine.

You see it lists all the commands it would execute. It goes through every file in c:\tes and all its subdirectories.

Or from any directory

C:\>for /r c:\tes %f in (*.*) do @echo mp3prog %f
mp3prog c:\tes\103.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:\>

or

C:\>for /f %f in ('dir c:\tes /s/b') do @echo mp3prog %f
mp3prog c:\tes\103.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:\>
1

In this particular case, all you need to do is specify the root directory name instead of using wildcards. At least, that is true for jshint, which is more popular now than jslint.

jshint scripts

Or:

cd scripts
jshint .

See also (which includes barlop's handy trick applied to jshint): https://stackoverflow.com/a/30114333/1593924

  • Thank you for the hint. My question was not targeting jslint/jshint though, it was just an example. It is a general question about the windows command line. – chiccodoro May 8 '15 at 13:24
  • Right, but the answer I linked to does include several ways to address that more generally (including cygwin and powershell, and even a for loop). – Jon Coombs May 14 '15 at 16:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.