Windows batch file可将子文件夹中的.js文件合并到一个组合文件中
我正在努力让它工作。网络上有很多例子,但它们都做了一些与我的目标略有不同的事情,每次我认为我能解决它时,我都会被一个对我来说毫无意义的错误击中 在放弃JSLint.VS插件之后,我尝试创建一个批处理文件,可以从VisualStudio构建事件调用,也可以从cruise control调用,该文件将为项目生成JSLint警告。最终目标是获得一个组合的js文件,我可以通过以下方式将其传递给jslint:Windows batch file可将子文件夹中的.js文件合并到一个组合文件中,windows,file,batch-file,merge,subdirectory,Windows,File,Batch File,Merge,Subdirectory,我正在努力让它工作。网络上有很多例子,但它们都做了一些与我的目标略有不同的事情,每次我认为我能解决它时,我都会被一个对我来说毫无意义的错误击中 在放弃JSLint.VS插件之后,我尝试创建一个批处理文件,可以从VisualStudio构建事件调用,也可以从cruise control调用,该文件将为项目生成JSLint警告。最终目标是获得一个组合的js文件,我可以通过以下方式将其传递给jslint: cscript jslint.js < tmp.js 理想的解决方案是能够按照以下方式调
cscript jslint.js < tmp.js
理想的解决方案是能够按照以下方式调用批处理文件:
jslint.bat %ProjectPath%
然后将项目中的所有js文件合并成一个临时js文件。这样我就可以灵活地将项目传递给批处理文件
我一直在尝试使用copy、xcopy、type和echo,并使用for-do循环、dir/s等来实现这一点,以实现我的目的,但无论我尝试什么,都会出现错误。有关批处理文件的提示的好地方是
这篇文章是为Linux world编写的,但您仍然可以从中拯救一些东西。您可以创建一个包含以下内容的批处理文件:
@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
是否不存在,等等)。发布错误也不错。我有太多要提及的内容。我花了好几个小时在这上面,每次我碰到一堵砖墙。我不确定哪种错误最接近最终解决方案,因此我必须列出大约3或4种不同的尝试以及与之相关的错误。但是,如果需要的话,我会重新跟踪我的尝试,并列出我在执行时遇到的每个错误:)这将是一个好主意。向我们显示您当前的代码和错误。
@echo off
pushd "%~1"
echo.>tmp.js
for /r %%x in (*.js) do (
copy tmp.js + "%%~x" tmp.js > NUL
)
popd