从 ruby 脚本调用 .bat 文件

Invoke .bat file from ruby script

请帮我从 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'

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

查看文档here

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

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