終了する exit

【連載】

LinuxユーザーのためのWindowsコマンド超入門

【第18回】終了する exit

[2019/01/21 06:00]後藤大地 ブックマーク ブックマーク

  • サーバ/ストレージ

サーバ/ストレージ

終了する exit

コマンドプロンプトを使ったりバッチファイルを作成する際に欠かすことのできないコマンドのひとつにexitコマンドがある。exitコマンドは名前のとおりコマンドプロンプトやバッチファイルを終了するためのコマンドだが、機能はそれだけではない。

Linuxでインタラクティブシェルを使ったりシェルスクリプトを作成する場合に重要になる機能……というよりも「値」にコマンドの終了ステータスがある。UNIX系のコマンドの多くは正常に処理が終了した場合、終了ステータスとして0を返すつくりになっている。処理が正常に終了しなかった場合や、なんらかの問題が発生した場合には0以外の値を返すようになっていることが多い。

シェルでは$?で終了ステータスにアクセスできる

コマンドの終了ステータスへのアクセス方法はシェルごとに異なるのだが、多くのケースで$?を使ってアクセスできることが多い。コマンドを実行した後に$?を表示させてみると、ひとつ前に実行したコマンドが成功したのか失敗したのかを確認できる。この機能を使って処理を振り分けることができる。

コマンドプロンプトやバッチファイルでも同様だ。コマンドプロンプトやバッチファイルでは終了コードと呼ばれているが、これはインタラクティブシェルやシェルスクリプトでの終了ステータスとほぼ同じものだと考えてよい。コマンドプロンプトの場合には次のように%ERRORLEVEL%が終了コードを保持している。

終了コードはコマンドが成功裏に終わったのか、それとも失敗したのかを知る上で欠かせない。Windowsのコマンドも成功した場合には終了コードとして0を返し、成功しなかった場合には終了コードとして0以外を返すことが多いように思う。終了コードを利用することでより実用的なバッチファイルの作成できる。

終了コードを指定するexit

そこでexitコマンドだ。exitコマンドはコマンドプロンプトやバッチファイルを終了するためのコマンドだが、引数に数値を取ることができるようになっており、この値が終了コードとして使われるという特徴がある。この機能を利用することでより応用範囲の広いバッチファイルを作れる。

コマンドプロンプトでexitを実行すると、当然だがそのコマンドプロンプトは終了してしまう。これでは終了コードを確認することができないので、試す場合にはさらにコマンドプロンプトを起動してから処理を行うとよい。cmdでさらにコマンドプロンプトを出すことができるので、そこで作業してみよう。例えば次のような結果を確認することができる。

exitに終了コードを指定した場合の動作を確認

次の判定分は直前のコマンドの実行結果に合わせて動作を変えることになる。

終了コードに合わせて処理を変える分岐処理

if 0 == %ERRORLEVEL% (
    コマンドが成功した場合の処理
) else (
    コマンドが失敗した場合の処理
)

先ほどの例にこの処理を組み合わせてみると次のようになる。

終了コードに合わせて処理を変える分岐処理を使ったサンプル

このように、exitコマンドで終了コードを指定するようにすれば、エラーが発生した場合に終了コードを使って処理を分岐させるといったことができるようになる。簡単なコマンドだがぜひ頭に入れておきたい。

バッチファイルを作るときには、終了コードを使った処理を分岐したり、エラーが発生した場合にはexitに終了コードを指定して終了したり、といったように、ほかのバッチファイルやコマンドプロンプトから扱いやすくなるように配慮したい。

参考資料

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る