C#

【C#】コマンドライン引数の設定、使い方

Visual Studioでコマンドライン引数を設定する方法と、タスクスケジューラから設定する方法を調べてみました。

【検証環境】.NET 5.0 / コンソールアプリ

コマンドライン引数とは

コマンドライン引数とは、Mainメソッド(エントリー ポイント)の引数です。

よく見かけるMain(string[] args) です。

普段あまり使うことはありませんが、使いどころを考えてみました。

実行する際に引数の値に応じて、処理の内容を変えたい場合などに使うと便利だと思います。わざわざプロジェクトを分けて複数作成する必要が無くなるため、コマンドライン引数で処理を制御するような使い方ができます。

Visual Studioで設定

ソリューションエクスプローラー > プロジェクト右クリック > プロパティ で下記のような画面が表示されます

デバッグ を選択し、デバッグ起動プロファイルUIを開く を選択します

すると、コマンドライン引数 から設定することができます

コマンドライン引数は複数設定することができます。その際は、半角スペースを空けて入力します。保存ボタンなどはなく、入力したら右上の×で閉じます

この状態で、下記のコードを実行してみます

static void Main(string[] args)
{
    foreach (var arg in args)
    {
        Console.WriteLine(arg);
    }
}

設定した値がargsに渡されていることが確認できました

タスクスケジューラで設定

Visual Studioでの設定はデバッグ用です。実際にツールなどとして使う際は、タスクスケジューラで引数を設定したりして使うことになると思います。

タスクスケジューラとは指定した日時や間隔でプログラムを起動させることができます。詳しい使い方はここでは割愛します。

タスクスケジューラでは、下記の画面で設定が出来ます。(タスクの作成 > 操作タブ > 新規)

例えば、この時間にはAという処理、この時間ではBという処理…といった使い方をしたい場合に、設定したコマンドライン引数でA処理を行うか、B処理を行うか、などを決めることができます。

一つの実行ファイルでコマンドライン引数の値に応じて処理を変化することができるため、使いようによっては便利に感じますね。

使う場合は下記のようなコードになるかと思います。

static void Main(string[] args)
{
    if (args.Length == 0)
    {
        Console.WriteLine("引数がありません");
        return;
    }
    if(args.Length > 1)
    {
        Console.WriteLine("引数が複数あります");
        return;
    }
    var commandArg = args[0];
    switch (commandArg)
    {
        case "A":
            Console.WriteLine("処理A");
            break;
        case "B":
            Console.WriteLine("処理B");
            break;
        default:
            Console.WriteLine("引数が正しくありません");
            break;
    }
}

exeファイルのショートカットに設定

exeファイルのショートカットのプロパティを見ると、下記のようになっています。

ここのリンク先を見ると、exeファイルが指定されています。ここに半角スペースを空けて文字列を入力することでコマンドライン引数を設定することもできます。

ブラウザにコマンドライン引数でURLを渡すとそのページを開いてくれますので、実際に試してみましょう。

「https://pg-life.net/」を引数に渡してOKクリック後にショートカットをクリックすると、ブラウザでホーム画面ではなく引数に渡したURL先を直接開いたことが確認できました。

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい