'gem install'后批处理文件不运行下一个命令

AZ.*_*AZ. 13 gem batch-file

我做了一个批处理文件试图在Windows上设置rake/albacore环境:

@echo off

echo Setting up rake environment for building

echo Installing Bundler
gem install bundler

echo Bundle Installing gems
bundle install
Run Code Online (Sandbox Code Playgroud)

当我运行此批处理文件(双击或在cmd窗口内运行)时,只执行第一个gem命令.永远不会调用'bundle install'.这是输出:

C:\>InstallGems.bat
Setting up rake environment for building
Installing Bundler
Successfully installed bundler-1.2.1
1 gem installed
Installing ri documentation for bundler-1.2.1...
Installing RDoc documentation for bundler-1.2.1...

C:\>
Run Code Online (Sandbox Code Playgroud)

我在第一个'gem install'命令之后添加了'pause',似乎'暂停'也从未执行过.

任何的想法?

AZ.*_*AZ. 21

啊,我想通了:只需在每个命令之前添加'call'.

@echo off

echo Setting up rake environment for building

echo Installing Bundler
call gem install bundler

echo Bundle Installing gems
call bundle install 
Run Code Online (Sandbox Code Playgroud)

  • 似乎gem是一个批处理文件本身.由于dos之前运行的方式,为了向后兼容,这种行为是设计的:http://stackoverflow.com/questions/11638705/why-does-calling-a-nested-batch-file-without-prepending-call-到该行退出 (4认同)