批处理文件将子文件夹中的.js文件合并到一个组合文件中
我正在努力实现这一目标。网络上有很多例子,但他们都做了一些与我打算做的事情略有不同的事情,每次我想我可以解决它时,我都会遇到一个对我来说毫无意义的错误。批处理文件将子文件夹中的.js文件合并到一个组合文件中
放弃JSLint.VS插件后,我试图创建一个批处理文件,我可以从Visual Studio生成事件调用,或者从巡航控制中为项目生成JSLint警告。最终的目标是让我可以传递到JSLint的组合js文件,使用:
cscript jslint.js < tmp.js
这将验证我的脚本就可以合并成一个文件在一个js minifier使用,或输出使用标准输出的一堆错误。
但js文件,将弥补tmp.js很可能是在多个子文件夹中的项目,如:
D:\_projects\trunk\web\projectname\js\somefile.debug.js
D:\_projects\trunk\web\projectname\js\jquery\plugins\jquery.plugin.js
理想的解决方案是能够调用沿着一个批处理文件如下行:
jslint.bat %ProjectPath%
然后这会将项目中的所有js文件合并到一个临时js文件中。这样我可以灵活地将项目传递给批处理文件。
我一直在尝试使用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
不存在等)。
这是一个很大的帮助,谢谢。 – 2010-05-06 09:40:46
看一看http://nefariousdesigns.co.uk/archive/2010/02/website-builds-using-make/
的职位是Linux世界的书面但你仍然可能能够挽救出来的东西吧。
也可以发布错误。 – 2010-04-15 16:48:54
我有太多提及。我花了好几个小时在上面,每次碰到一堵砖墙。我不确定哪个错误最接近最终解决方案,因此我必须列出大约3或4次不同的尝试以及与它们相关的错误。 但是,如果需要的话,我会重新追踪我的尝试并列出我在做这件事时所犯的每个错误:) – 2010-04-15 17:11:51
这将是一个好主意。向我们展示您拥有的当前代码以及您获得的错误。 – aphoria 2010-04-15 17:27:16