皆様こんにちは。皆様はバッチファイルをご存知ですか?
当サイトでも記事の中で使ったことはあるようですが、取り上げるのは始めてのようです。バッチファイルとは何でしょうか?
Table of Contents(目次)
バッチファイルとは
バッチファイルは処理をひとまとめにして、一連の処理を一回で行うためのファイルです。
バッチ処理というのがあってこれがひとまとまりの処理をまとめて行う処理のことをいいます。バッチ処理を行うための情報の記述をするファイルがバッチファイルです。
バッチファイルを使えば面倒な定作業を一回で行えるのでPCを使う上でとても便利になります。もちろん同じ処理を何回も行うようなルーチンワークがあればの話ですが・・。
Windowsでのバッチファイル
Windowsでバッチファイルというと、一番簡単に作れるのがコマンドを羅列しただけのテキストファイルです。
テキストファイルの拡張子を.batにすれば、それだけでバッチファイルが完成します。拡張子の説明はこちら
バッチファイルの例
xcopy /e c:¥myfolder¥ d:¥doc¥myfolder¥
xcopy /e c:¥myfolder2¥ d:¥doc¥myfolder¥
このように必要なだけ必要なコマンドを書くだけです。
ちなみにバッチファイルには有効なコマンドなら何でもかけます。pingやsshなどでもかけますので必要なコマンドがあればどんどん書いてゆきましょう。
そしてテキストファイルを保存して拡張子を.batにするか。はじめから.batでテキストファイルを保存すれば準備完了です。
バッチファイルを実行する
バッチファイルははじめから実行形式として認識されていますので、ダブルクリックで実行する事ができます。
ダブルクリックすれば一連の処理が実行され終わると黒い画面が閉じます。
黒い画面を閉じたくない
黒い画面は自動的に閉じてしまいますが、処理の内容などの出力が実際には画面に表示されています。これらの結果を確認するために画面を閉じたくない場合があります。
その場合は処理の最後にpauseを挿入してください。これを挿入するとそこで処理が止まり何らかのキーを押すまで停止したままになります。
これで画面が確認できますね。
xcopy /e c:¥myfolder¥ d:¥doc¥myfolder¥
xcopy /e c:¥myfolder2¥ d:¥doc¥myfolder¥
pause
バッチ処理の途中でスリープする(ウェイトを入れる)
バッチファイルを何らかの理由で一時的に停止させて起きたい時があります。
例えばバッチファイルをループさせたときなど連続して処理をさせると負荷が高くなってしまう場合にスリープが有効だったりします。
その他何らかの理由で停止させたい場合もあるかもしれません。
その場合はWidows Vista 以降のOSで標準的に装備されたtimeoutコマンドを実行することで実現できます。
timeout 5
これで5秒停止します。またこのコマンドは出力を出して停止時間や停止を終了した旨のメッセージが表示されます。
このようなメッセージが不要な場合、バッチファイルなどでは邪魔になる場合もあります。その場合は出力をnulデバイスに出力することによりメッセージを捨て去ることができます。
timeout 5 /nobreak > nul
これで出力が捨てられました。
バッチファイルがうまく動かない
pingなどの出力結果をping.batで確認する場合などにping.batと名前をつけるのがNGです。
pingコマンドをping.batで呼ぶ場合、同じ名前のbatファイルがあるとそのファイルが再帰的によばれてしまいループしてしまいます。結果ビヨンビヨンといったような変な出力がひたすら繰り返すという状況に陥ります。
sshをssh.batなどで呼ぶのもだめです。意外と上級者の方でも知らないでうっかりつけてしまい、なぜ実行できないのか悩むこともあるようです。ここはしっかり覚えておきましょう。
バッチファイルを使ってみて(あとがき)
いかがでしたでしょうか?なんだか簡単そうではありませんか?今日からバッチファイルというテクニックをすぐに使うことができます。
バックアップなどの処理も自動化できますし何かと便利に使えるシーンも多いです。これを機に色々と試してみてくださいませ。