1

我在命令行中收到错误 No such file or directory ,我认为这是因为我没有将 ruby​​ 文件保存在特定的地方。我所做的只是创建一个随机文件夹来保存我的 ruby​​ 文件。

我需要将我的脚本保存在原始 ruby​​ 文件夹中吗?谢谢!

** 这是 Windows 7。

更多信息 - 我所做的只是创建一个名为“Matz.rb”的简单文件,因为我目前正在阅读 O'reilly Ruby 书。在我的代码中,我只写了“Hello Matz”。我把它保存在我的桌面上。当我转到命令行并编写 ruby​​ matz.rb 时,它显示“ruby:没有这样的文件或目录 -- matz.rb”请帮助:(

如果这与 PATH 或 shell 有关,我真的不知道它们到底是什么,因为我昨晚才开始编码。

4

1 回答 1

1

您很可能不在正确的文件夹中。您需要以某种方式告诉 ruby​​ 解释器它在哪里寻找文件。

确保您位于正确的文件夹中 - 该cd命令允许您更改位置:

cd C:\Users\Username\Desktop
ruby Matz.rb

或明确指定路径:

ruby C:\Users\Username\Desktop\Matz.rb

默认情况下,ruby 解释器将在您的当前目录(提示中显示的位置)中查找您提供的任何文件名。


编辑:我将尝试逐步解释我的意思。

  • 当您最初打开命令提示符时,它会在提示符中指示您所在的文件夹(您的“当前工作目录”):

    C:\Users\YourUsername >
    

    在上面的示例中,您正在C:\Users\YourUsername文件夹中工作。

  • cd您可以使用该命令移动目录。例如,键入cd Desktop会将您移动到名为 的文件夹中Desktop假设这样的文件夹存在于您当前的位置
  • 您可以通过明确指定您想要的位置来移动到当前文件夹之外的另一个文件夹:cd C:\Another\Place
  • 当您运行 ruby​​ 命令时ruby Matz.rb,系统知道如何找到该ruby程序,因为安装程序将其位置放入PATH环境变量中。不要太担心这个,这只是解释了它知道什么ruby意思的“魔法”,无论你在哪里。
  • Matz.rbRuby通过在当前目录中查找您指定的文件(在上面的示例中)。要重新迭代,它会在您的提示符中查找写在其中的任何文件夹。
  • 您可以通过指定完整路径告诉 ruby​​ 查看当前文件夹之外的内容(如上面的答案所示)。

要从刚刚打开的新命令窗口开始输入ruby Matz.rb并使其工作,您需要执行以下操作:

  1. 移动到正确的目录
  2. 运行命令

如果我们假设您的用户名是alex并且您的桌面上有一个名为“rubycode”的文件夹,其中包含Matz.rb,您可以这样做:

  1. 打开一个命令提示符,它很可能会在C:\Users\Alex
  2. 移动到桌面上的 ruby​​code 文件夹:cd Desktop\rubycode. 所有后续命令都将在此文件夹中运行。
  3. 运行ruby命令,指定文件:ruby Matz.rb
  4. 在学习 ruby​​ 时继续运行 ruby​​ 命令。

我希望这是有道理的。

于 2013-08-02T19:30:21.620 回答