批文件将子文件夹中的.js文件合并到一个组合文件中

我努力使这个工作。 网上有很多例,但是他们所做的事情与我打算做的事情略有不同,每当我想我能解决这个问题时,我就会受到一个对我来说毫无意义的错误。

放弃了JSLint.VS插件后,我试图创build一个batch file,我可以从Visual Studio生成事件调用,或者从巡航控制,这将生成一个项目的JSLint警告。 最终目标是获得一个可以传递给jslint的组合js文件,使用:

cscript jslint.js < tmp.js 

这将validation我的脚本已准备好被合并到一个文件中用于js minifier,或者使用标准输出输出一堆错误。

但是构成tmp.js的js文件可能在项目中的多个子文件夹中,例如:

 D:\_projects\trunk\web\projectname\js\somefile.debug.js D:\_projects\trunk\web\projectname\js\jquery\plugins\jquery.plugin.js 

理想的解决scheme是能够按照以下方式调用batch file:

 jslint.bat %ProjectPath% 

然后将项目中的所有js文件合并到一个临时js文件中。 这样我就可以灵活地将项目传递给batch file。

我一直在尝试使用copy,xcopy,type和echo来工作,并使用for do循环和dir / s等来使它做我想做的事情,但无论我尝试什么,我都会遇到一个错误。

您可以使用以下内容创建批处理文件:

 @echo off pushd "%~1" for /r %%x in (*.js) do ( type "%%~x" ) popd 

然后通过以下方式运行它:

 jslint.bat PATH > tmp.js 

如果你不想使用重定向,你可以尝试:

 @echo off pushd "%~1" echo.>tmp.js for /r %%x in (*.js) do ( copy tmp.js + "%%~x" tmp.js > NUL ) popd 

请注意,为了简单起见,我并没有打扰做任何错误检查(例如检查是否提供了一个参数(尽管如果不是,它只是使用当前目录),测试tmp.js还没有存在等)。

DosTips.com是批量文件提示的好地方

看看http://nefariousdesigns.co.uk/archive/2010/02/website-builds-using-make/

这篇文章是为Linux世界而写的,但是你仍然可以从中拯救出一些东西。