PowerShell Alias - iex
 記事記号:[mdAc08] 初版:2010/Dec/28

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Invoke-Expression
    
概要
    ローカル コンピューター上でコマンドまたは式を実行します。
    
構文
    Invoke-Expression [-Command] <string> [<CommonParameters>]
    
説明
    Invoke-Expression コマンドレットは、指定された文字列をコマンドとして評価また
    は実行し、式またはコマンドの結果を返します。Invoke-Expression を使用しない場
    合、コマンド ラインで送られた文字列はそのまま返されます (エコー表示されます)。
    
パラメーター
    -Command <string>
        実行するコマンドまたは式を指定します。コマンドまたは式を入力するか、コマ
        ンドまたは式を含んでいる変数を入力します。Command パラメーターは必須です。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.String または PSObject
        コマンドを表すオブジェクトを Invoke-Expression に対してパイプ処理できま
        す。$input 自動変数を使用して、コマンドの入力オブジェクトを表します。
    
出力
    PSObject
        呼び出されたコマンドによって生成された出力 (Command パラメーターの値) 
        を返します。
    
メモ
        -- 式は、評価可能なステートメントで、Windows PowerShell コマンドなどの結
        果を生成します。
         
        -- スクリプトで Invoke-Expression コマンドレットを使用する場合、適切な対
        策を講じてください。ユーザーが入力したコマンドを実行するために Invoke-Ex
        pression を使用する場合、コマンドを実行する前に、実行しても安全であるこ
        とを確認します。通常、フリーフォームの入力を許可するのではなく、事前に定
        義された入力オプションを伴うスクリプトを設計することをお勧めします。
        
    -------------------------- 例 1 --------------------------
    C:\PS>$command = "Get-Process"
    
    C:\PS> $command
    Get-Process
    
    C:\PS> invoke-expression $command
    
    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
    -------  ------    -----      ----- -----   ------     -- -----------
        296       4     1572       1956    20     0.53   1348 AdtAgent
        270       6     1328        800    34     0.06   2396 alg
         67       2      620        484    20     0.22    716 ati2evxx
       1060      15    12904      11840    74    11.48    892 CcmExec
       1400      33    25280      37544   223    38.44   2564 communicator
    ...
    
    説明
    -----------
    この例は、Invoke-Expression を使用して式を評価する方法を示しています。Invoke
    -Expression を使用しない場合、式は出力されますが、評価されません。
    
    最初のコマンドは、"Get-Process" の値 (文字列) を $command 変数に代入します。
    
    2 番目のコマンドは、コマンド ラインで変数名を入力した結果を示します。Windows 
    PowerShell は文字列をエコー表示します。
    
    3 番目のコマンドは、Invoke-Expression を使用して文字列を評価します。
    
    -------------------------- 例 2 --------------------------
    C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1"
    
    C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression
    
    説明
    -----------
    これらのコマンドは、Invoke-Expression を使用して、ローカル コンピューター上
    のスクリプト (TestScript.ps1) を実行します。これら 2 つのコマンドは同等です。
    最初のコマンドは、Command パラメーターを使用して実行するコマンドを指定します。
    2 番目のコマンドは、パイプライン演算子 (|) を使用してコマンド文字列を Invoke
    -Expression に渡します。
    
    -------------------------- 例 3 --------------------------
    C:\PS>$cmd = 'get-process | where {$_.cpu -gt 1000}'
    
    C:\PS> iex $command
    
    説明
    -----------
    この例では、$cmd 変数に保存されたコマンド文字列を実行しています。
    
    このコマンド文字列は、現在のオブジェクトを表す変数 $_ を含んでいるため、単一
    引用符で囲まれています。このコマンド文字列が二重引用符で囲まれている場合、$c
    ommand 文字列に保存される前にその値で $_ 変数が置換されます。
    
    -------------------------- 例 4 --------------------------
    C:\PS>$cmdlet_name = "get-eventlog"
    
    C:\PS> $example_number = 1
    
    C:\PS> $example_code = (get-help $cmdlet_name).examples.example[($example
    _number-1)].code
    
    C:\PS> invoke-expression $example_code
    
    説明
    -----------
    このコマンドは、Get-EventLog コマンドレット ヘルプ トピックの最初の例を取得し
    て実行します。
    
    別のコマンドレットの例を実行するには、そのコマンドレットの名前を $cmdlet_name 
    変数の値に設定し、$example_number 変数に実行する例の番号を設定します。例の番
    号が無効な場合、コマンドは失敗します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113343
    Invoke-Command 
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Alias、iex
ご利用数: 1917540
感想・要望・問い合わせは こちら