我刚刚在Windows 8上完成了最新的Ruby版本2.0.0-p247的构建和安装。(注意:我还使用预构建的RubyInstaller测试了相同的结果)
尝试从命令行执行一个简单的Hello World示例会产生两种不同的结果,具体取决于是从Powershell还是cmd启动ruby。
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测试)
答案 0 :(得分:2)
在cmd.exe中,单引号字符传递给ruby,而在Powershell中,它们被解释为包含单引号字符串文字。
这可能有效(Powershell语法传递值为'puts "Hello!"'
的字符串(包括单引号):
PS> ruby -e "'puts `"Hello!`"'"
如果没有,你可以依靠新的PS v3“停止解析”符号--%
PS> ruby -e --% 'puts "Hello!"'
答案 1 :(得分:0)
安装ruby时,ruby别名将添加到命令提示符中。我不认为他们也为Powershell添加别名。要运行它,您必须设置安装ruby的路径,然后运行命令。
示例:
Cd C:\Ruby193\bin
ruby -e 'puts "Hello, World!"'