MW211 EXIT

devlog
DOSバッチ/バッチ名と実行ファイル名
2014年07月28日
バッチ名を考えるのがめんどくさい時、
つい実行ファイル名と同名をつけてしまうと大変なことになる。

実行ファイルを実行するのではなく、自身のバッチを実行してしまうことになるからだ。

例えば「hoge.exe」を実行する以下のようなバッチを「hoge.bat」として実行した場合。
┌──────────────────────────────────────┐
│hoge                                                                        │
└──────────────────────────────────────┘
再帰的に呼びだされるらしく、DOS窓に実行履歴が大量に出力されて止まらなくなる。
┌──────────────────────────────────────┐
│C:\>hoge                                                                    │
│                                                                            │
│C:\>hoge                                                                    │
│                                                                            │
│C:\>hoge                                                                    │
│                                                                            │
│:                                                                          │
└──────────────────────────────────────┘

次に、標準出力の向き先を変えて指定した場合。
┌──────────────────────────────────────┐
│hoge >log.log                                                               │
└──────────────────────────────────────┘
出力先「log.log」に出力される内容は、自身の実行履歴ただ一行。
┌──────────────────────────────────────┐
│                                                                            │
│C:\>hoge 1>log.log                                                          │
└──────────────────────────────────────┘

とにかく、何気なくはまってしまうので注意。
分類:Windows