PowerShell Cmdlet - Out-File
 記事記号:[mg1940] 初版:2011/Sep/30

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

名前
    Out-File
    
概要
    ファイルに出力を送ります。
    
構文
    Out-File [-FilePath] <string> [[-Encoding] <string>] [-Append] [-Force] [-In
    putObject <psobject>] [-NoClobber] [-Width <int>] [-Confirm] [-WhatIf] [<Com
    monParameters>]
    
説明
    Out-File コマンドレットは、出力をファイルに送ります。パラメーターを使用する
    必要がある場合は、リダイレクション演算子 (>) の代わりにこのコマンドレットを
    使用できます。
    
パラメーター
    -Append [<SwitchParameter>]
        出力を既存のファイルの内容に置き換えるのではなく、ファイルの末尾に追加し
        ます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Encoding <string>
        ファイルで使用する文字エンコードの種類を指定します。指定可能な値は、Unic
        ode、UTF7、UTF8、UTF32、ASCII、BigEndianUnicode、Default、および OEM で
        す。既定値は Unicode です。
        
        Default を指定した場合、システムの現在の ANSI コード ページのエンコード
        が使用されます。
        
        OEM を指定した場合は、オペレーティング システムの現在の OEM コード ペー
        ジ識別子が使用されます。
        
        必須                         false
        位置                         2
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -FilePath <string>
        出力ファイルのパスを指定します。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Force [<SwitchParameter>]
        コマンドレットが既存の読み取り専用ファイルを上書きするのを許可します。Fo
        rce パラメーターを使用しても、コマンドレットはセキュリティ制限を上書きで
        きません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InputObject <psobject>
        ファイルに書き込むオブジェクトを指定します。オブジェクトが格納されている
        変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    -NoClobber [<SwitchParameter>]
        既存のファイルを上書きしません (内容を置き換えません)。既定では、指定し
        たパスにファイルが存在する場合、Out-File は警告なしにファイルを上書きし
        ます。Append と NoClobber の両方が指定されている場合、出力は既存ファイル
        に追加されます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Width <int>
        出力行の文字数を指定します。この文字数を超えた場合、それ以降の文字は折り
        返されずに切り捨てられます。このパラメーターを省略した場合、行の幅はホス
        トの特性で決定されます。Windows PowerShell コンソールの既定値は 80 (文字
        ) です。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Confirm [<SwitchParameter>]
        コマンドを実行する前に確認メッセージを表示します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -WhatIf [<SwitchParameter>]
        実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.Management.Automation.PSObject
        パイプを使用して、あらゆるオブジェクトを Out-File に渡すことができます。
    
出力
    なし
        Out-File は出力を生成しません。
    
メモ
        Out コマンドレットはオブジェクトを書式設定しません。オブジェクトをレンダ
        リングし、指定された表示先に送るだけです。書式設定されていないオブジェク
        トを Out コマンドレットに送ると、Out コマンドレットはこのオブジェクトを
        レンダリングする前に書式設定用コマンドレットに送ります。
        
        Out コマンドレットには、名前またはファイル パス用のパラメーターがありま
        せん。Out という動詞を含むコマンドレット (Out コマンドレット) にデータを
        送るには、Windows PowerShell コマンドの出力をコマンドレットに送るパイプ
        ライン演算子 (|) を使用します。InputObject パラメーターを使用すると、変
        数に保存したデータをコマンドレットに渡すこともできます。ヘルプについては、
        例を参照してください。
        
        Out-File はデータを送りますが、出力オブジェクトは作成しません。パイプを
        使用して Out-File の出力を Get-Member に渡すと、Get-Member はオブジェク
        トが指定されていないと報告します。
    
    -------------------------- 例 1 --------------------------
    
    C:\PS>get-process | out-file -filepath C:\Test1\process.txt
    
    説明
    -----------
    このコマンドは、コンピューター上のプロセスの一覧を Process.txt ファイルに送
    ります。指定したファイルが存在しない場合、Out-File によってそのファイルが作
    成されます。FilePath パラメーターの名前はオプションであるため、"get-process 
    | outfile C:\Test1\process.txt" のように省略することができます。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>get-process | out-file C:\Test1\process.txt -noclobber
    
    Out-File : File C:\Test1\process.txt already exists and NoClobber was speci
    fied.At line:1 char:23
    + get-process | out-file  <<<< process.txt -noclobber
    
    説明
    -----------
    このコマンドもプロセスの一覧を Process.txt ファイルに送りますが、既存のファ
    イルの上書きを禁止する NoClobber パラメーターを使用しています。出力にはエラ
    ー メッセージが含まれていますが、これは NoClobber と既存のファイルが使用され
    たときに表示されます。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>$a = get-process
    
    C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding ASC
    II -width 50
    
    説明
    -----------
    これらのコマンドは、コンピューター上のプロセスの一覧を Process.txt ファイル
    に送ります。テキストは、Findstr や Grep のような検索プログラムで読み込むこと
    ができるように ASCII 形式でエンコードされます。Out-File では、既定で Unicode 
    形式が使用されます。
    
    最初のコマンドは、プロセスの一覧を取得し、$a 変数に保存しています。2 番目の
    コマンドは、Out-File コマンドレットを使用して、一覧を Process.txt ファイルに
    送ります。
    
    InputObject パラメーターを使用して、入力が $a 変数に保存されていることを指定
    します。Encoding パラメーターを使用して、出力を ASCII 形式に変換します。Widt
    h パラメーターを使用して、ファイルの各行を 50 文字に制限します。出力行では 5
    1 文字以降は切り捨てられるため、プロセスの表の右端の列は表示されません。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>set-location hklm:\software
    
    c:\PS>get-acl mycompany\mykey | out-file -filepath c:\ps\acl.txt
    
    c:\PS>get-acl mycompany\mykey | out-file -filepath filesystem::acl.txt
    
    説明
    -----------
    これらのコマンドは、FileSystem ドライブ以外で Out-File コマンドレットを使用す
    る方法を示しています。
    
    最初のコマンドは、現在の場所を HKLM:\Software レジストリ キーに設定します。
    
    2 番目および 3 番目のコマンドは、同じ結果になります。Get-Acl コマンドレットを
    使用して、MyKey レジストリ サブキー (HKLM\Software\MyCompany\MyKey) のセキュ
    リティ記述子を取得します。結果はパイプライン演算子によって Out-File コマンド
    レットに渡され、次に Acl.txt ファイルに渡されます。
    
    Out-File は Windows PowerShell レジストリ プロバイダーによってサポートされて
    いないため、FilePath パラメーターの値として、"c:" などのファイル システム ド
    ライブ名か、"FileSystem::" のようにプロバイダー名と 2 つのコロンを指定する必
    要があります。このメソッドの例が 2 番目および 3 番目のコマンドです。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113363
    Out-String 
    Out-Null 
    Out-Host 
    Out-Printer 
    Out-Default 
    Tee-Object 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Out-File
ご利用数: 1862345
感想・要望・問い合わせは こちら