我有以下目录结构。构建红宝石宝石的批处理脚本
build
-build.bat
package
-gems
-abc.gem
-xyz.gem
-install.sh
plugins
-abc
-abc.gemspec
-xyz
-xyz.gemspec
我想在构建文件夹中编写批处理文件build.bat。 应该执行的任务是:
- 删除包中的任何以前的文件/宝石夹
plugins文件夹中的每个子目录里面,执行
gem build *.gemspec
此命令将创建一个宝石文件在同一个目录中。
- 移动创建打包宝石文件/文件夹的宝石
我一直在经历批处理编程语法,我甚至不知道这是否可以通过批处理脚本或无法实现。我怎样才能编写一个批处理脚本来完成这些任务?
[编辑]
一些基本的研究后,我能够完成很多的任务。
@echo on
cd..
set CUR_DIR=%cd%
set GEMS_DIR=%CUR_DIR%\Package\gems
set PLUGINS_DIR=%CUR_DIR%\Plugins
del /f/s/q/a %GEMS_DIR%\
cd %PLUGINS_DIR%
for /d %%D in (*) do (
pushd %%~fD
gem build *.gemspec
move *.gem %GEMS_DIR%
popd
)
但是,move命令复制.gem和.gemspec文件。我如何限制它只移动.gem文件?此外,最后一个括号后面添加的任何行都不会执行。 任何其他改进将不胜感激。谢谢。
[EDIT2]
的福尔循环i之后添加的任何线没有被执行。在添加了call
宝石命令之后,一切正常。
这很可能是可以完成的 - 而且很容易。但是,该网站不是免费的代码写入服务。请编辑您尝试使用'edit'工具将问题解决到您的帖子中,然后如果遇到任何问题,我们可能会尝试将其磨合到运行状态。 – Magoo
@Magoo感谢您在批处理脚本中进行自己的研究的动力。喜欢你的个人资料中的这一行 - “我不介意解决愚蠢和明显的问题。保持我的灰色物质剩下的东西不会固化。“ –
最后一个括号后面的行?正如尼尔森可能会说的:“我看不到任何线......” – Magoo