[ VB.NET / C# ] コマンドライン引数を取得する ( Environment.GetCommandLineArgs )

Pocket

ここでは、VB.NET と C# でコマンドラインパラメータを取得するサンプルコードを掲載しています。コマンドラインパラメータの取得方法には、エントリポイント(Main メソッド)のパラメータとして取得する方法と、Environment.GetCommandLineArgs プロパティで取得する方法があります。なお、VB.NET の場合に限り My.Application.CommandLineArgs メソッドによっても取得することができます。

スポンサーリンク

コマンドラインパラメータ取得サンプル

VB.NET

Class TestArgs

    Public Shared Sub Main(ByVal args() As String)

        ' エントリポイント(Main)のパラメータから取得する
        ' 実行ファイルパスは引数として与えられない
        For Each arg As String In args
            Console.WriteLine(arg)
        Next

        ' Environment.GetCommandLineArgs メソッドで取得する
        ' args[0] には、実行ファイルパスが格納される
        Dim cmds As String() = Environment.GetCommandLineArgs()
        For Each cmd As String In cmds
            Console.WriteLine(cmd)
        Next

        ' [VB.NET の場合のみ]
        ' 実行ファイルパスは引数として与えられない
        For Each cmd As String In My.Application.CommandLineArgs
            Console.WriteLine(cmd)
        Next

        Console.ReadKey()
    End Sub
End Class

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Program
{
    static void Main(string[] args)
    {
        /*
         * エントリポイント(Main)のパラメータから取得する
         * 実行ファイルパスは引数として与えられない
         */
        foreach (string arg in args) {
            Console.WriteLine(arg);
        }

        /*
         * Environment.GetCommandLineArgs メソッドで取得する
         * args[0] には、実行ファイルパスが格納される
         */
        string[] cmds = Environment.GetCommandLineArgs();
        foreach (string cmd in cmds) {
            Console.WriteLine(cmd);
        }
        Console.ReadKey();
    }
}
スペースを引数の一部として渡す方法

パラメータはスペース区切りで区切られるので、スペース自体を引数に与える場合には以下のように、ダブルコーテーションでくくって渡すことになります。また、ダブルコーテーション自体をパラメータとして渡すには “””” のようにエスケープさせます。

D:\argv.exe "abc def" """"
参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *