从ruby脚本调用.bat文件

时间:2015-03-19 08:48:49

标签: ruby chef

请帮我从ruby脚本调用.bat文件。我尝试了以下内容。我的test.rb文件如下:

batch "run-script" do
  cwd 'D:\\jenkins\jobs\HybrisJob\workspace'
  code <<-EOH
    `hybrisserver.bat`
  EOH
  action :run
end

但它不起作用。

[2015-03-19T14:01:16+05:30] FATAL: Mixlib::ShellOut::ShellCommandFailed: batch[run-script] ((chef-apply cookbook)::(chef-apply recipe) line 1) had an error:
Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'

1 个答案:

答案 0 :(得分:0)

不要尝试在批处理资源中使用ruby代码,它会启动一个cmd.exe,它没有反引号或系统命令的线索。

请参阅文档here

batch "run-script" do
  cwd 'D:\\jenkins\\jobs\\HybrisJob\\workspace'
  code "hybrisserver.bat"
  action :run
end

转义cwd属性中的所有\(或使用/资源将负责将其更改为系统分隔符) 没有必要对没有args的单行使用Heredoc语法,也不需要测试返回的其他脚本行。