&tag(バッチファイル); *目次 [#c6769e04] #contents *関連ページ [#te8f3f99] *参考情報 [#l37f71cb] -[[炎のコマンドプロンプト入門/バッチファイル/ユーザー入力:http://www.geocities.co.jp/SiliconValley-SanJose/1227/batinput.html]] -[[Windowsバッチのかゆいところメモ - cloned.log:http://d.hatena.ne.jp/cloned/20080822]] *一般 [#n7f98bbd] **コメント [#tc904977] -REMを使う REM コメント **文字列を出力する [#rc472b9d] -ECHOを使う ECHO abc => abc -ダブルクォートも出力されてしまう ECHO "abc" => "abc" **ファイル名の操作[#mbe5cbf4] -[[バッチファイルでファイルパスからファイル名や拡張子を自由に取り出す方法 - みちしるべ:http://orangeclover.hatenablog.com/entry/20101004/1286120668]] -[[batファイルで、そのファイル自身のパスを取得する - 砂漠の音楽:http://d.hatena.ne.jp/fuzzhead/20080930/p1]] -[[%~dp0 とは - [コマンドプロンプト・バッチ/Windows] ぺんたん info:http://pentan.info/server/windows/cmd/dp0.html]] -例えば"%~dp0"でバッチファイルの存在するパスを取得できる。 ***バッチファイル自身の名前を取得する [#o6986289] - %~n0 ***拡張子なしでバッチファイル自身の名前を取得する [#o6986289] - %~n0を使う echo %~n0 ***バッチファイルのあるフォルダを実行フォルダとする [#nea06abe] - cd /dと%~dp0を組み合わせる cd /d %~dp0 *変数 [#s3d8da45] **代入 [#n36f44ab] -SETを使う。=のあとが文字列とみなされるのでスペースを入れてはダメ SET A=foo bar echo %A% *制御構造 [#q6ed2f84] **比較 [#f84ae0f2] -IFを使う。 IF "%A%" == "foo bar" ( echo a is foo bar ) -否定はIF NOTを使う IF NOT "%A%" == "foo bar" ( echo a is not foo bar ) **エラー処理 [#te7652d8] ***%errorlevel%で判定する [#ib1fbc39] -次のような処理で判定できる。 #pre{{ @echo off call child.bat 0 echo errorlevel=%errorlevel% if %errorlevel% neq 0 goto error echo "good end" exit /b 0 :error echo "bad end" exit /b 1 }} -%errorlevel%の判定は拡張機能らしい。"IF ERRORLEVEL 0"といった処理とは異なるので注意!!(大文字で%なし)。 *Tips [#f0d07a22] **引数の渡し方 [#d2649f23] - %0:バッチファイル名、%1:1番めの引数、%2:2番めの引数、%*:全部の引数。 **バッチファイルで改行したい [#t6eb86b5] -行末に"^"(ハット)をつければいいらしい。[[バッチファイルで2行にわたるコマンドを入力したいのですが | その他(プログラミング)のQ&A【OKWave】:http://okwave.jp/qa/q2270635.html]]