论坛首页 编程语言技术论坛

教给你在bat里面写ruby代码(附带同步时间的脚本示例)

浏览 3624 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-13  
在windows bat文件中写ruby代码,得解决两个问题:
1 windows的bat解析器跳过ruby代码。
2 ruby解析器跳过bat代码


那么bat脚本的样子应该是这样子:

"ruby" -x "%~f0" %*
goto endofruby
#!/bin/ruby
#ruby -x will skip text before !ruby
p "sdf"
__END__
:endofruby

附赠一个时间同步的例子:sync_time.bat
@echo off
"ruby" -x "%~f0" %*
goto endofruby
#!/bin/ruby
#ruby -x will skip text before !ruby
def sync_time
	time=get_time_bjtime()
end
def get_time_bjtime
  require 'open-uri'
	p 'geting from bjtime...'
	time_string=open('http://bjtime.cn/header3.asp').string.gsub(/\r|\n| /,"")
	time_string=~/nyear=(\d+).*nmonth=(\d+).*nday=(\d+).*nhrs=(\d+).*nmin=(\d+).*nsec=(\d+).*/
	y,mon,d,h,min,s=$1,$2,$3,$4,$5,$6
	p time_string
	p "got #{y}-#{mon}-#{d} #{h}:#{min}:#{s}"
  system("date #{y}-#{mon}-#{d}")
	system("time #{h}:#{min}:#{s}")
end
if __FILE__ == $0
  sync_time
end
__END__
:endofruby


   发表时间:2008-10-13  
http://snippets.dzone.com/posts/show/6146

gem install ntp

 
include NET
 
r = NTP.get_ntp_response()
puts r.inspect

0 请登录后投票
   发表时间:2008-10-13  
太麻烦了,看我一条命令就搞定了:

ntpdate time.nuri.net
0 请登录后投票
   发表时间:2008-10-13  
我标题本末倒置了。
得,改标题了。
0 请登录后投票
   发表时间:2008-10-13  
robbin 写道
太麻烦了,看我一条命令就搞定了:

ntpdate time.nuri.net


老大,貌似LZ是W系的
0 请登录后投票
   发表时间:2008-10-13  
goncha 写道
robbin 写道
太麻烦了,看我一条命令就搞定了:

ntpdate time.nuri.net


老大,貌似LZ是W系的


装个cygwin嘛。
0 请登录后投票
   发表时间:2008-11-06  
这个跳来跳去的功能有什么用呢?
0 请登录后投票
   发表时间:2008-11-23   最后修改:2008-11-23
在bat中写ruby代码?

如果在*nix上就可以直接用 here doc
#!/bin/sh
ruby << EOF
puts 'Some Ruby Code here'
EOF

在win*上一般是间接生成文件
@echo off
echo put "Some Ruby Code here" > aaa.rb
ruby aaa.rb
del aaa.rb

碰到管道操作符 | > < 记得要 ^ 转义 显得很麻烦
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics