DOSプロンプト引数を取得する

 System.Einvironmentを使う

 Pythonの標準モジュールを使ってDOSプロンプト引数を表示するには次のようにすれば良いです。

import sys
for key in sys.argv:
  print key

 同じようなことを.NET Frameworkでやってみましょう。System.EnvironmentクラスのCommandLineArgsメゾットを使います。

from System.Environment import *
for key in GetCommandLineArgs():
  print key

 .NET Frameworkを使うと一つ一つの名前が長い。でもやっていることは同じなので大体わかるでしょう。では実際に試して見ましょう。
 まず"argv.py"というスクリプトを書きます。

# coding: shift-jis

from System.Environment import *

for key in GetCommandLineArgs():
  print key

#遊びで追加してみました。
from System import Environment
print Environment.CommandLine

raw_input()

 "CommandLine"っていうのも気になったので、追加してみました。
 ここで3行目のfrom文でGetCommandLineArgsは使えるようになったのに、"CommandLine"のためにまたfrom文を書いてあることにコメントします。3行目のfrom文の書き方で、Environmentクラスの持っているメゾットやオブジェクトは使用可能になりますがプロパティは使用できません。CommandLineはプロパティであるため、Environmentクラスを使用できるようにして、10行目のprint文で使用できるようにしています。

 実際に使ってみましょう。コマンドプロンプトを起動して"avrg.py"が保存してあるフォルダへ移動します。そこで次のようにコマンドを打ってみます。

 "c:\program files\IronPython 2.6\ipy.exe" argv.py This is "Command Line"
出力画面:
 c:\program files\IronPython 2.6\ipy.exe
 argv.py
 This
 is
 Command Line
 "c:\program files\IronPython 2.6\ipy.exe" argv.py This is "Command Line" 
 当然"c:\program files\IronPython 2.6\ipy.exe"は"(IronPythonが保存されているフォルダ)\ipy.exe"という意味です。
 Environment.CommandLineはプロンプトを全部表示したもののようですね。

 標準モジュールとの違いを確認しよう

 表題のとおり標準モジュールを用いた場合との違いを確認してみましょう。"argv2.py"として次のスクリプトを打ってみます。

# coding: shift-jis

print ".NET Frameworkを使って実行:"

from System.Environment import *
for key in GetCommandLineArgs():
  print key

print "-----"
print "Pythonの標準モジュールを使って実行:"

import sys
for key in sys.argv:
  print key

raw_input()

 "argv2.py"を使って"argv.py"と同じようにプロンプトから実行してみます。
出力画面:
 .NET Frameworkを使って実行:
 c:\program files\IronPython 2.6\ipy.exe
 argv2.py
 This
 is
 Command Line
 -----
 Pythonの標準モジュールを使って実行:
 argv2.py
 This
 is
 Command Line
 .NET FrameworkではIron Python自体の実行ファイル(ipy.exe)が入りますが、標準モジュールではスクリプトファイル名以降になります。どちらが有用化かそれぞれで考え方に違いはあると思いますが、注意が必要です。