在Ruby上执行Windows批处理文件



我正在使用一个称为redmine Checkout的插件,该插件使我们可以选择在Redmine中查看SVN存储库中的代码。现在,我需要添加一个按钮,该按钮可以在该特定项目中查看所有代码并将其下载到我的本地计算机上。

所以我创建了一个批处理文件,它是这样的:

@echo off
echo.
echo. [ SVN Updater ]
set SVNURL=%1
set SOURCE=C:Users
set SVN=C:Program FilesTortoiseSVNbin
echo.
echo. Updating %SOURCE% to SVN...
"%SVN%TortoiseProc.exe" /command:checkout /path:"%SOURCE%" /url:%SVNURL% /closeonend:2 
echo. done.
echo.
echo. Operation complete.

此批处理文件对我的本地计算机执行了代码的结帐。现在,我需要在Redmine应用程序中运行此批处理文件。您能告诉我在哪里以及如何运行此批处理文件。我是新手。

非常感谢您。

您可以使用 systemexec,``(backticks) ,%x {} or using open3`可以在许多方面运行批处理文件或任何其他命令。我更喜欢使用open3 -

require 'open3'
log = File.new("#{your_log_dir}/script.log", "w+")
command = "your_batch_file.bat"
Open3.popen3(command) do |stdin, stdout, stderr|
     log.puts "[OUTPUT]:n#{stdout.read}n"
     unless (err = stderr.read).empty? then 
         log.puts "[ERROR]:n#{err}n"
     end
end

如果您想了解有关其他选项的更多信息,则可以参考Ruby,Exec,System和%X()之间的差异或Backticks或Backticks,以链接到相关文档。

ruby允许您运行任何shell命令,包含批处理文件,并使用``运算符获取输出。例如:

def run_batch_file
  `my_batch_file.bat`
end

最新更新