Windows上的Ruby:Require无法识别为内部或外部命令

时间:2018-09-18 11:37:50

标签: ruby windows cmd guard asciidoctor

我正在尝试使用Guard监视AsciiDoctor文件中的更改。这是官方文档中的 Guardfile

require 'asciidoctor'

guard 'shell' do
  watch(/^mydoc\.adoc$/) {|m|
    Asciidoctor.convert_file m[0]
  }
end

对我有用。但是现在,我试图在不创建Guardfile的情况下启动相同的命令-即,我只想在Windows cmd.exe中编写这些命令即可。

但是当我写require 'asciidoctor'时,命令提示符给我一个错误:

  

'require'不被识别为内部或外部命令,可操作程序或批处理文件。

好吧,我知道Windows %Path%环境变量经常会出现此类错误消息。但是我不知道在这种情况下该如何解决。

1 个答案:

答案 0 :(得分:2)

Ruby和DOS Batch是两种完全不同的编程语言,它们之间完全没有关系。您根本无法期望DOS Batch的解释器能够运行Ruby代码,反之亦然。 (特别考虑到在编写CMD.EXE时Ruby甚至不存在,所以CMD.EXE怎么可能知道如何解释Ruby代码?)

您需要在Ruby解释器中运行Ruby代码(或使用Ruby编译器将其编译为您具有解释器的对象)。