&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]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS