起動時のコマンドライン引数を取得するEnvironment.CommandLineを使用する方法プログラム起動時のコマンドライン引数を取得するには、System.EnvironmentクラスのCommandLineプロパティを参照します。VB6のCommand関数(またはMainメソッドのパラメータからの取得)と違い、CommandLineプロパティはコマンドライン引数だけでなく、起動したプログラムのファイル名にコマンドライン引数がついたものを返すことに注意してください。 またコマンドライン引数を解析し、文字列の配列として取得するには、EnvironmentクラスのGetCommandLineArgsメソッドを使います。このときも配列の先頭(0番の要素)には起動したプログラムのファイル名が入ります。よって、GetCommandLineArgsメソッドが返す配列の大きさは、必ず1以上となります。 'コマンドライン引数の表示 Console.WriteLine(System.Environment.CommandLine) 'コマンドラインを配列で取得する Dim cmds() As String cmds = System.Environment.GetCommandLineArgs() Dim cmd As String For Each cmd In cmds Console.WriteLine(cmd) Next //コマンドライン引数の表示 Console.WriteLine(System.Environment.CommandLine); //コマンドラインを配列で取得する string[] cmds; cmds = System.Environment.GetCommandLineArgs(); //コマンドライン引数の表示 foreach (string cmd in cmds) { Console.WriteLine(cmd); } 上記のコードが"C:\VB TEST\VB.exe"に記述されており、"VB.exe"をコマンドライン引数に "C:\VB TEST\VB.exe" "C:\VB TEST\1.bmp" "C:\VB TEST\2.bmp" "C:\VB TEST\3.bmp" C:\VB TEST\VB.exe C:\VB TEST\1.bmp C:\VB TEST\2.bmp C:\VB TEST\3.bmp Mainメソッドのパラメータで取得する方法さらに、プログラムのエントリポイントであるMainメソッドのパラメータからコマンドライン引数を取得することも出来ます。この時はEnvironmentクラスのGetCommandLineArgsメソッドと違い、配列の先頭に実行したプログラムファイル名が入ることはありません。なおエントリポイントについて詳しくは、こちらをご覧ください。 Private Sub Main(ByVal CmdArgs() As String) 'コマンドライン引数の表示 Dim cmd As String For Each cmd In CmdArgs Console.WriteLine(cmd) Next End Sub static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("コマンドライン引数はありません。"); } else { foreach (string arg in args) Console.WriteLine(arg); } } 出力例は、以下のようになります。 C:\VB TEST\1.bmp C:\VB TEST\2.bmp C:\VB TEST\3.bmp .NET Framework 2.0以降のVB.NETで、My.Application.CommandLineArgsを使用する方法.NET Framework 2.0以降のVB.NETでは、My.Application.CommandLineArgsプロパティでコマンドライン引数を取得することも出来ます。この場合は「Mainメソッドのパラメータで取得する方法」と同様に、配列の先頭に実行したプログラムファイル名が入ることはありません。 'コマンドライン引数の表示 For Each cmd As String In My.Application.CommandLineArgs Console.WriteLine(cmd) Next 出力例は、以下のようになります。 C:\VB TEST\1.bmp C:\VB TEST\2.bmp C:\VB TEST\3.bmp
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright(C) DOBON!. All rights reserved.
|