PR

[C# 入門] コマンドライン引数とプログラムの終了コード

プログラムを実行する際に文字列のパラメーターを渡すことが出来ます。
これをコマンドライン引数といいます。

また、プログラムの終了時にint型の戻り値(終了コード)を返すことが出来ます。

引数?戻り値??という人は[C# プログラミング入門] メソッドの使い方を見てください。

スポンサーリンク

コマンドライン引数の渡し方

コマンドライン引数はコマンドプロンプトでプログラムを実行する際に、プログラムのパスの後ろに文字列をパラメータとして指定します。
複数のパラメータを指定するには半角スペースで区切ります。

こんな感じです。test.exe がプログラムのパス、後ろの文字列2つが引数になります。

C:\>test.exe 引数1 引数2

ファイルパスなどでスペースが入る場合はダブルクォーテーションで文字列を囲みます。

C:\>test.exe "C:\Users\Default\Saved Games"

また、GUIアプリケーション(ウィンドウが表示されるプログラム)にもコマンドライン引数を指定することができます。

こちらもコマンドプロンプトで指定してもいいのですが、めんどくさいのでショートカットを作成すると便利です。

ショートカットで引数を指定
スポンサーリンク

コマンドライン引数の使い方

プログラム実行時にパラメータを渡すにはMainメソッドにstring[]型の引数を追加します。引数名は何でもいいのですが、argargument(引数)の略)が昔から使われています。

using System;
class Program
{
    public static void Main(string[] arg)
    {
        Console.WriteLine($"引数の数={arg.Length}");
        Console.WriteLine($"引数=[ {string.Join(",", arg)} ]");
    }
}
スポンサーリンク

終了コードの渡し方

終了コードとはプログラムが正常に終了したかなどの情報を得るためにプログラム終了時に返す値のことをいいます。

正常終了時には0、それ以外の場合は0以外の値(エラーに応じて値を変える)を返すことが多いです。

プログラム終了時に終了コードを返すにはMainメソッドにint型の戻り値を追加し、Mainメソッドの { } ブロック内で return で値を返します。

using System;
class Program
{
    public static int Main(string[] arg)
    {
        // 引数チェック
        if (arg.Length == 0) {
            Console.WriteLine("引数を指定してください。");
            return -1;
        }

        // 正常終了
        return 0;
    }
}
スポンサーリンク

終了コードの取得方法

バッチファイルを作るときなどに参考にしてください。

プログラムの終了コードを取得するには環境変数%ERRORLEVEL%を使います。
%ERRORLEVEL%は一つ前の処理の終了コードが格納されています。

D:\source\test_bin>test.exe
引数を指定してください。

D:\source\test_bin>echo %ERRORLEVEL%
-1

C# 記事まとめページに戻る(他のサンプルコードもこちら)

C# プログラミング講座
C#についての記事まとめページです。開発環境VisualStudioのインストール方法や使い方、プログラミングの基礎知識についてや用語説明の記事一覧になっています。講座の記事にはすぐに実行できるようにサンプルコードを載せています。

コメント