Ruby on Windows: Require 未被识别为内部或外部命令

Ruby on Windows: Require is not recognized as an internal or external command

我正在尝试使用 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' is not recognized as an internal or external command, operable program or batch file.

好吧,我知道这样的错误消息通常与 Windows %Path% 环境变量有关。但是我不明白在这种特殊情况下如何解决它。

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

您需要 运行 Ruby 在 Ruby 解释器中编写代码(或使用 Ruby 编译器将其编译为您拥有解释器的内容)。