コントローラーに保存されているバッチファイルを作成しました。これは、パブリックフォルダーの.batファイルに書き込む必要があります。
コードは次のとおりです。
def checkin
file_path = "#{Rails.root}/public/batfiles/#{Time.now.hour}_#{Time.now.min}_# {Time.now.sec}.bat"
file = File.new(file_path, 'w')
svn_path = params[:svn_path]
content = ''
content += "@echo off\n"
content += "echo.\n"
content += "echo. [ SVN Updater ]\n"
content += "set SVNURL=#{svn_path}\n"
content += "set SOURCE=C:\\Users\\"
content += "set SVN=C:\\Program Files\\TortoiseSVN\\bin\n"
content += "echo.\n"
content += '"%SVN%\TortoiseProc.exe" /command:checkout /path:"%SOURCE%" /url:%SVNURL% /closeonend:2'
content += "echo. done.\n"
content += "echo.\n"
content += "echo. Operation complete.\n"
file.write content
file.close
send_file(file.path)
end
ファイルを public/batfiles/.bat に保存すると、サーバーではなくユーザーのシステムでファイルを実行したいと考えています。
現在、ユーザーは .bat ファイルをダウンロードし、ブラウザから実行しています。代わりに、ユーザーには何もせずに、アプリケーションで .bat ファイルを開き、ローカル マシンで実行してもらいたいと考えています。