|
Last-modified: 2010-01-08 (金) 12:12:01 (5437d)
指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新したい場合に。 // // 指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新する // // [前提] svnコマンドにPATHが通っていること。 // // @author Jomora(kazuhiko@jomura.net) // @version 2010.01.08 初版作成 // subversionリポジトリを再帰検索する親フォルダ var targetFolder = "C:\\repos_local"; //**Start Encode** //main var fso = WScript.CreateObject("Scripting.FileSystemObject"); var shell = WScript.CreateObject("WScript.Shell"); var rootFolderObj = fso.GetFolder(targetFolder); UpdateFolder(rootFolderObj); WScript.Quit(0); //functions function UpdateFolder(folderObj) { if (fso.FolderExists(folderObj.Path + "\\.svn")) { execUpdate(folderObj); } else { var j = new Enumerator(folderObj.SubFolders); for (; !j.atEnd(); j.moveNext()) { UpdateFolder(j.item()); } } } function execUpdate(folderObj) { command = "svn update " + folderObj.Path; WScript.StdOut.WriteLine(command); var oExec = shell.Exec(command); var files = oExec.StdOut; var buff; var quit = false; while(true) { while(!files.AtEndOfStream) { buff = files.ReadAll(); WScript.StdOut.WriteLine(buff); } if(quit) { break; } quit = (oExec.Status == 1); WScript.Sleep(100); } } |