Batch file 批处理文件不';t在';gem安装&x27;

Batch file 批处理文件不';t在';gem安装&x27;,batch-file,gem,Batch File,Gem,我制作了一个批处理文件,试图在windows上设置rake/albacore环境: @echo off echo Setting up rake environment for building echo Installing Bundler gem install bundler echo Bundle Installing gems bundle install 当我运行这个批处理文件(双击或在cmd窗口中运行)时,只执行第一个gem命令。从未调用“bundle install”。以

我制作了一个批处理文件,试图在windows上设置rake/albacore环境:

@echo off

echo Setting up rake environment for building

echo Installing Bundler
gem install bundler

echo Bundle Installing gems
bundle install
当我运行这个批处理文件(双击或在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:\>
我在第一个'gem install'命令后添加了'pause',似乎也从未执行过'pause'


有什么想法吗?

啊,我想出来了:只需在每个命令之前添加“call”

@echo off

echo Setting up rake environment for building

echo Installing Bundler
call gem install bundler

echo Bundle Installing gems
call bundle install 

似乎gem本身就是一个批处理文件。由于dos以前的操作方式,为了向后兼容,这种行为是经过设计的:Gem本身可能是一个批处理文件,或者脚本由于错误而以某种方式中止,并且没有告诉您错误。