1

我刚刚在 Windows 8 上构建和安装了最新的 Ruby 版本 2.0.0-p247。(注意:我还使用预构建的 RubyInstaller 进行了测试,结果相同)

尝试从命令行执行一个简单的 Hello World 示例会产生两种不同的结果,具体取决于 ruby​​ 是从 Powershell 启动还是从 cmd 启动。

Powershell:
.\ruby -e 'puts "Hello, World!"' # -e:1: syntax error, unexpected end-of-input

cmd:
.\ruby -e 'puts "Hello, World!"' # Hello, World!

任何想法为什么 ruby​​ 在 Powershell 环境中失败?

注意:Windows 8 包括 Powershell 3.0(尚未使用 1.0 或 2.0 进行测试)

4

2 回答 2

2

在 cmd.exe 中,单引号字符被传递给 ruby​​,而在 Powershell 中,它们被解释为包含单引号字符串文字。

这可能有效(Powershell 语法来传递带有值的字符串'puts "Hello!"'(包括单引号):

PS> ruby -e "'puts `"Hello!`"'"

如果没有,您可以依靠新的 PS v3“停止解析”符号--%

PS> ruby -e --% 'puts "Hello!"'
于 2013-07-04T01:12:34.467 回答
0

ruby 别名在安装 ruby​​ 时添加到命令提示符中。我不认为他们还为 Powershell 添加了别名。要运行它,您必须设置安装 ruby​​ 的路径,然后运行命令。

例子:

Cd C:\Ruby193\bin
ruby -e 'puts "Hello, World!"'
于 2013-07-04T00:58:02.667 回答