突然ですが、Subversionって使い勝手が良くて、自分は、
等を管理しています。
ところが、野放図に色んな場所にチェックアウトしちゃっているものなので、暫くチェックインするのを忘れていたりするんですね。
という訳で、一括でチェックインするバッチファイルを作って見ました。
rem Subversion管理下のデータをチェックインする call :SUB_SVN "<フォルダ1>" call :SUB_SVN "<フォルダ2>" call :SUB_SVN "<フォルダ3>" pause goto QUIT :SUB_SVN rem 一種のサブルーチン @echo off echo %1フォルダのチェック… svn status %1 -q | find /v /c "?" > tmp.txt for /f "usebackq tokens=*" %%i in (`type tmp.txt`) do @set NO=%%i if NOT %NO% == 0 ( echo "==>チェックイン必要" svn ci %1 --editor-cmd "notepad" ) else ( echo "==>チェックイン不要" ) @echo on :QUIT
このバッチファイルは、ちと小細工を行っています。
- 'for'文を使って、bashでやるようなバッククォート処理(コマンド呼び出しし、標準出力を取り込んで、パラメータ化する)を行っています。
詳しくは、CodeZine:GUIのダイアログを使ったエンドユーザ向け対話バッチの実現(DOS, ダイアログ, バッチ)を読んでください。 - チェックインが必要か否かの判断に、'svn status'の出力結果の行数を、'find'コマンドで行数カウントしています。
(正確には、'find'コマンドで行数カウントと類似の処理を実現している) - 'call'文の拡張機能を使って、サブルーチン呼び出し的な事をしています。
もう少し複雑になるようだと、PowerShellや純粋にスクリプト言語で組んだ方が良いとは思いますが、この程度なら まぁOKでしょう。