从dos批处理文件向ruby脚本传递dos变量

从dos批处理文件向ruby脚本传递dos变量,ruby,batch-file,dos,Ruby,Batch File,Dos,可能重复: 我试图将主机名作为参数传递到ruby脚本中。这可能吗?这是我认为应该起作用的,但事实并非如此 %h% = HOSTNAME ECHO %h% ruby this.rb %h% pause ruby代码是 val = ARGV[0] puts "Value is #{val}" 您可以在DOS中设置环境变量,并从Ruby脚本访问它。可能是这样的: set h = HOSTNAME ECHO %h% ruby this.rb pause Ruby代码: val = ENV[

可能重复:

我试图将主机名作为参数传递到ruby脚本中。这可能吗?这是我认为应该起作用的,但事实并非如此

%h% = HOSTNAME
ECHO %h%

ruby this.rb %h%
pause
ruby代码是

val = ARGV[0]

puts "Value is #{val}"

您可以在DOS中设置环境变量,并从Ruby脚本访问它。可能是这样的:

set h = HOSTNAME
ECHO %h%

ruby this.rb
pause
Ruby代码:

val = ENV["h"]

puts "Value is #{val}"

我相信你不必把
%
符号放进去。@Eitan,不,这不是重复的。@MurifoX。如果你不加%符号,ruby puts会返回“Value is h”@Andrew Ok,那么你会得到什么输出?如果您改为使用ruby this.rb“something”呢?ruby脚本会打印“Value is something”吗?ruby无法通过ENV访问它?我试图避免这种情况。出现问题的实际脚本是:ruby replace_text.rb myfile.csv A_Computer_Name HOSTNAME