我缺少目录的通配符。从linux出发,我想到一个可以定义这样的路径:
jslint scripts/**/*.js
其中包括脚本目录树中所有后代目录中的所有js文件。
jslint scripts/*/*.js
包括scripts /的所有直接子目录。
在Windows命令行中,这似乎不起作用。有什么办法可以定义相同的吗?
没有通配符可以像在Unix / Linux中那样工作。在Windows命令行中*
或*.*
将列出当前目录中的文件和目录。但是你做不到c:\blah\*\*
你可以做:
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>
您会看到它列出了它将执行的所有命令。它遍历c:\ tes及其所有子目录中的每个文件。因此,您可以将* .mp3替换为* .js,将mp3prog替换为jslint,这可能会给您想要的东西。
删除@echo即可执行命令,而不仅仅是显示它们。(尽管@echo
在调试时将命令保留在其中可能会很好)
无论是*
或*.*
在这些括号工作正常。
或从任何目录
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:\>
或者
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:\>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句