windows shell中类似linux的行为-运行ruby而不使用;“红宝石”;附加到命令中?

windows shell中类似linux的行为-运行ruby而不使用;“红宝石”;附加到命令中?,ruby,windows,command-line,Ruby,Windows,Command Line,这可能是一个非常愚蠢的问题,但我似乎找不到答案,因为我显然在关键词方面失败了 如果在.rb文件的顶部放一行,那么您知道如何在linux中从命令行运行命令,这样您就不必一直键入ruby myfile.rb,只需键入./myfile.rb即可?在windows环境中是否可能有相同的功能?我大部分时间都使用GitBash作为shell,并安装了很多cygwin二进制文件。只是一般的方法是将该行放在顶部,然后对文件进行chmod,这实际上不是一个选项。可能需要定义常规的windows文件关联吗?是的,您

这可能是一个非常愚蠢的问题,但我似乎找不到答案,因为我显然在关键词方面失败了


如果在.rb文件的顶部放一行,那么您知道如何在linux中从命令行运行命令,这样您就不必一直键入
ruby myfile.rb
,只需键入./myfile.rb即可?在windows环境中是否可能有相同的功能?我大部分时间都使用GitBash作为shell,并安装了很多cygwin二进制文件。只是一般的方法是将该行放在顶部,然后对文件进行chmod,这实际上不是一个选项。

可能需要定义常规的windows文件关联吗?

是的,您可以:

assoc .rb=RubyScript
ftype RubyScript=ruby "%1" %*
之后,您可以像调用可执行程序一样调用ruby脚本


如果您还希望能够删除
.rb
文件扩展名,则需要在
PATHEXT
环境变量中包含
.rb

如果您希望在Win 7上使用图形工具来辅助此操作,您可能需要签出:

使用此工具,您可以轻松编辑.rb文件(或任何其他文件)的上下文菜单项

对于“打开”命令:

ruby "%1" %*
您可以创建“编辑”命令,例如:

c:\ruby\scite\scite.exe "%1"

如上所述,如果不在“%1”之后指定%*,脚本将看不到任何命令行参数。不要忘记将.RB添加到PATHEXT环境变量。

BTW,这不是特定于脚本解释器的。这只是普通的文件关联,也用于关联,比如Word与
.doc
文件。这意味着您也可以像处理文档一样执行此操作:只需双击Ruby文件,就会弹出对话框询问您如何处理该文件,浏览到
ruby.exe
,您就完成了。我只是认为来自Linux的人可能更适合使用命令行解决方案:-)这在win7上似乎不完全起作用。虽然我可以启动脚本,但它似乎没有将命令行传递给脚本。例如,如果我有一个脚本执行“puts ARGV.size”并运行foo.rb param1,它将输出0:(@Jörg,不完全是这样,因为这不会添加
%*
,因此您不能向脚本传递参数,那么。@MikeJ:您忘记了
%*