批处理文件在执行'gem install'命令后无法继续执行下一条命令

13

我制作了一个批处理文件,试图在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' 也从未执行。

有什么想法吗?


Gem本身可能是一个批处理文件,或者脚本由于错误而中止,没有告诉您有关错误的信息。 - user1440897
1个回答

22

啊,我明白了:只需在每个命令前面加上“call”。

@echo off

echo Setting up rake environment for building

echo Installing Bundler
call gem install bundler

echo Bundle Installing gems
call bundle install 

4
看起来gem本身就是一个批处理文件。由于早期DOS系统的运行方式,在向后兼容方面,这种行为是有意设计的:https://dev59.com/Q2gu5IYBdhLWcg3wByq1 - SeanC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接