文系忘備録

どこにでもいる文系大学生の忘備録です

MENU

バッチファイル(batchfile)ややこしい文法

こんにちは、dntfです。
今回は初めてbatchfileに触れてみて、文法面で難しいと思ったところなどを書き残しておきたいと思います。
※基本的な文法(if,else,forなど)はここでは説明しません。

batchfileに慣れるために書いたコードは下になります。
gist0a3f3b053e9557cc8711654b9ab316c9

1.'('と')'の使い方がややこしい。

例えば↓のようなコードがあるとします。

if "%1" == "neko"(
    echo nya-
)
else(
 echo mew- 
)

同じようなコードをc#などで書いても恐らくエラーは出ません。
しかしbatchの場合はエラーとなります。では修正するとどうなるのか

if "%1" == "neko" (
    echo nya-
) else (
 echo mew- 
)

こうなります。
変更点としてわかりやすいのは、まず else が必ず ) else (になっている点です。
ちなみにこうしないとエラーになります。
そして一番細かいのは

'(' と ')'を使う場合は必ず半角スペースを開ける必要があります。
つまり
✖: if "%1" == "neko"(
〇: if "%1" == "neko" (
ということです。

2.引数の扱い方

if %1 == "neko"
と書くとエラーが出たりでなかったりややこしいです。
僕は
if "%1" == "neko"
で今のところ回避できてます。

以上です。