SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PowerShell 2.0の新機能

PowerShell 2.0の新機能(6)
――他言語の利用

PowerShell 2.0のAdd-Typeコマンドレット

  • X ポスト
  • このエントリーをはてなブックマークに追加

 PowerShell 2.0ではAdd-Typeというコマンドレットが追加され、このコマンドレットを使用すると、C#やVB.NETといった他言語のソースを利用することが可能です。今回は、PowerShell 2.0で他言語を利用する方法について説明します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 PowerShell 2.0ではAdd-Typeというコマンドレットが追加されました。このコマンドレットを使用すると、C#やVB.NETのソースコードをスクリプト内に組み込んだり、ファイルから読み込んで利用することができます。

 これにより、既存の資産を用いたり、他のC#/VB.NETエンジニアにメソッドを作成してもらって利用したりといったことが可能となります。

対象読者

 PowerShellの基本的な操作ができる方。

 PowerShellについて学びたい方は、PowerShell入門の連載を参照ください。

他言語を利用する

 それでは他言語を利用する方法についてみていきましょう。

 最初にC#のコードを利用してAdd-Typeコマンドレットの基本的な使用方法について説明し、その後でVB.NETやF#といったコードを利用する方法について触れます。

C#のコードを利用する

 次のコードはC#で書かれたSampleClassというクラス定義です。このクラスにはSayHelloとSayHello2という2つのメソッドがあります。

SampleClass(C#)
public class SampleClass{
    public static string SayHello(string Name)
    {
        return "Hello " + Name;
    }
    public static string SayHello2(string Name)
    {
        return "こんにちは" + Name + "さん";
    }
}

 このコードをヒア文字列を使用して、次のように$Sourceという変数に代入します(変数名は自由に付けてかまいません)。

ヒア文字列を使用して変数にソースコードを代入する
$source=@"
public class SampleClass{
    public static string SayHello(string Name)
    {
        return "Hello " + Name;
    }
    public static string SayHello2(string Name)
    {
        return "こんにちは" + Name + "さん";
    }
}
"@

 次に、変数$Sourceに格納されたコードをAdd-TypeコマンドレットでPowerShellから利用できるようにします。

 Add-Typeコマンドレットの基本構文を次に示します。

ヒア文字列を使用して変数にソースコードを代入する
Add-Type -Language 使用する言語 -TypeDefinition 利用するコード

 -Languageパラメータには表1の値を指定することができます。このことからも分かるように、C#、VB.NET、JScriptのソースコードを利用できます。 

表1 -Languageパラメータ値
言語 パラメータ値
C# CSharp
CSharpVersion3
VB.NET VisualBasic
JScript JScript

 それではAdd-Typeコマンドレットを使用して、PowerShellからSampleClassを利用できるようにして見ましょう。

Add-Type -Language CSharp -TypeDefinition $Source

 -Languageは既定値がCSharpとなっています。このためC#を利用する場合は-Languageパラメータを省略して次のように記述できます。

Add-Type -TypeDefinition $Source

 Add-Typeコマンドレットで登録したクラスを利用するには次のようにします。

[クラス名]::メソッド名

 たとえば、SampleClassのSayHelloメソッドを利用するには

[SampleClass]::SayHello("CodeZine")

のようにします。

 実行すると図1のようになります。

図1 SayHelloメソッドの実行

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ファイルからの読み込み

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
PowerShell 2.0の新機能連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5007 2010/04/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング