上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
※はじめに※
本記事のタイトルに『初心者が振り返る』とあるが、これは「このブログを検索などで見つけ訪れた初心者の方向けの内容」というわけではなく、そのまんま「初心者であるふらっと(本記事の書き手)が自分で学んだことを忘れないようノート代わりに書き残しておく内容」といったような意味合いを持つ。
そのため、もしかしたら初心者が読んで役に立つ可能性もあるかもしれないが、まったく役に立たない可能性もあるし場合によっては間違った記述がされる危険もあることをご了承いただきたい。



ここから本題。
最近仕事でバッチファイルを作る機会があり色々勉強したのだが、せっかく覚えたことを忘れたくないのでこのブログをメモ代わりにまとめておこうと考えた。
今後自分で振り返ったとき、なるべく思い出しやすいように丁寧に書いていきたい。 (書けるとは言ってない)


◆バッチファイル(Batch File)の拡張子
拡張子は ".bat" と ".cmd" の2種類がある。
.bat は見たまんまバッチと読めるが、 .cmd もまたバッチファイルである。

.bat は昔のWindows用、 .cmd は最近のWindows用のバッチファイル。
しかし実際のところ、最近のWindowsであれば .cmd だけでなく .bat も問題なく実行することができる。
なので結局、最近のWindowsを用いて使うのであれば .cmd でも .bat でもどちらでもよさげ。むしろ .bat の方がよく見る気がする。


◆バッチファイルの『おまじない』 ~ @echo off ~
大抵のバッチファイルでは、バッチファイルの一番頭に
 @echo off
という一文をつける。これはバッチファイルを作る際の『おまじない』と言っていいくらい有名なおはなし。

では、この文は一体何を表しているのか?
たとえば、次のような例文があるとする。

batch.png

echo とは出力だ。C言語を知っているひとであれば「print文のようなもの」といえばピンとくるだろうか。
echo の後ろにある文字を画面に出力する。例文だと「テストです。」という文字列を出力すると予想できる。
また、pause はその場で画面を一時停止し、exit は文字通りバッチの実行を終了する。
exit はバッチの最後に付ける必要があるのだが、exit まで到達するとウィンドウを完全に閉じてしまい何を出力したか分からなくなってしまうので、それを防ぐためにpauseをつけて出力を確認するのである。

では、このバッチを実際に実行してみる。

batch2.png

何やらごちゃごちゃしている。
出力を期待していた「テストです。」の他に、色々な文字が表示されている。

ネタばらしをすると、バッチではその実行時の命令文も一文一文すべて表示してしまう。
例文の出力で言えば、「C:\Users\flat3\Desktop>echo テストです。」や「C:\Users\flat3\Desktop>pause」の部分がそれである。
しかし実際に出力して欲しいのは「テストです。」だけであり、他は何も要らなかった。

そこでおまじないの説明その1である。
 echo off
という一文を入れると、それ以降バッチ内の命令文が出力されることはなくなる
つまり、これをバッチの頭につけておけば「C:\Users\flat3\Desktop>echo テストです。」のような文字列は出力されなくなる。

ただし、これの効果が適用されるのはあくまでその文より後ろの命令に対してだけである。
つまり、「echo off」という命令に対してはその効果が適用されないため、「C:\Users\flat3\Desktop>echo off」という命令文が画面に出てきてしまうのである。

そう、ここでおまじないの説明その2となる。
 @echo off
のように文の頭に@を付けると、その文については命令文が出力されない
これにより、「C:\Users\flat3\Desktop>echo off」という命令文が画面に出てくるのを防ぐのである。

以上をまとめると、「@echo off」という一文は
①頭の @ により、この一文についての命令文を出力しない。
echo off という命令により、次の文からは画面に命令文を出力しない。
という2つの働きをしているのである。

batch3.png

よって、上のように最初に @echo off を付けたバッチを作り実行してみると、次のように出力される。

batch4.png

先ほどのときと違い、「テストです。」だけが出力されている。
(「続行するには…」という文章も出ているが、これは pause 時に出てくる決まりなので今回はスルー)
命令文が出てきてしまうと見栄えが良くなかったり、何よりかっこ悪いので基本的には @echo off を付けるのを推奨。



スクショも撮りつつ書き纏めていたら思ったより時間がかかってしまったので、今回はとりあえずここまで。
まだまだ序盤of序盤な内容しか書けていないので、後日もっと大切な情報を書き記していきたい。
スポンサーサイト
2016.03.09 Wed l Batch File l コメント (0) トラックバック (0) l top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。