当我尝试启动脚本时,它会打开然后立即关闭

sta*_*ape 1 windows command-prompt

我正在尝试制作一个简单的 ruby​​ 脚本。但是,当我运行它时,命令行会打开,然后几乎立即关闭。我在 Visual Basic 控制台应用程序中遇到了同样的问题,所以我不确定这是否是命令提示符的问题。

我正在使用 Ruby 1.9.3 运行 Windows 8。任何帮助表示赞赏。

Mat*_*ira 5

这是在 Windows 上开发命令行应用程序时的常见症状,尤其是在使用 IDE 时。

解决问题的正确方法是手动打开命令行提示符或PowerShell,导航到程序所在目录,通过命令行手动执行:

ruby your_program.rb
Run Code Online (Sandbox Code Playgroud)

这就是命令行程序被设计为从一开始就执行的方式。当您从 IDE 运行代码时,它会打开一个终端并告诉它执行您的程序。但是,一旦您的程序完成执行,终端就不再有任何事情可做并因此关闭。

但是,如果打开终端,那么会告诉它要做什么,而不是 IDE,因此即使在程序完成后,终端也希望您提供更多输入。它没有关闭,因为没有告诉它关闭。

您还可以在 Ruby 脚本的末尾使用此解决方法:

gets
Run Code Online (Sandbox Code Playgroud)

这将从标准输入中读取一行并丢弃它。它会阻止您的程序以及终端在您按下回车键之前完成。

类似的解决方法可用于任何语言,例如 C 和 C++,但我认为它们并不能解决实际问题。

但是,不要让这让您气馁!gets在学习的同时随意使用。这是一个非常方便的解决方法,您应该使用它。

请注意,这些类型的黑客不应该出现在生产代码中。