この記事では、Powershellを使用してログファイルを出力する方法について説明します。
ログの出力方法
ファイルに文字列を出力するには、「Out-File」コマンドレットを使用します。
Out-File構文
Out-File [-FilePath] <string> [[-Encoding] <string>] [-Append] [-Force] [-InputObject <psobject>] [-NoClobber] [-Width <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
-FilePathパラメータ
出力するファイルのパスを指定します。「-FilePath」は省略可能です。
-Encodingパラメータ
ファイルで使用する文字エンコードの種類を指定します。既定値は utf8NoBOM です。
以下の値を指定できます。
値 | 説明 |
ascii | ASCII (7 ビット) 文字セットのエンコードを使用します。 |
bigendianunicode | ビッグ エンディアンバイト順を使用して UTF-16 形式でエンコードします。 |
bigendianutf32 | ビッグ エンディアンバイト順を使用して UTF-32 形式でエンコードします。 |
oem | MS-DOS およびコンソール プログラムの既定のエンコードを使用します。 |
unicode | リトル エンディアンバイト順を使用して UTF-16 形式でエンコードします。 |
utf7 | UTF-7 形式でエンコードします。 |
utf8 | UTF-8 形式でエンコードします。 |
utf8BOM | バイト オーダー マーク (BOM) を使用して UTF-8 形式でエンコードします。 |
utf8NoBOM | バイト オーダー マーク (BOM) を使用せずに UTF-8 形式でエンコードします。 |
utf32 | UTF-32 形式でエンコードします。 |
-Appendパラメータ
出力するテキストファイルに追記する場合に指定します。
-Forceパラメータ
読み取り専用属性をオーバーライドし、既存の読み取り専用ファイルを上書きします。
-InputObjectパラメータ
ファイルに書き込むオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
-NoClobberパラメータ
既存のファイルが上書きされないようにし、ファイルが既に存在することを示すメッセージを表示します。 既定では、指定したパスにファイルが存在する場合は、 Out-File 警告なしでファイルを上書きします。
-Widthパラメータ
出力の各行の最大文字数を指定します。 これを超過する文字は、折り返されることなく切り捨てられます。 このパラメーターを使用しない場合、幅はホストの特性によって決まります。 PowerShell コンソールの既定値は 80 文字です。
-Confirmパラメータ
コマンドレットの実行前に確認を求めるメッセージが表示されます。
-WhatIfパラメータ
コマンドレットの実行時に発生する内容を示します。
使用例
S> "Power Shell!" | Out-File -FilePath C:\temp\new.log -Encoding utf8
ファイルが作成されます。
ログファイル出力関数
ログファイルを出力する関数の例です。
$LOGFILE = "C:\temp\new.log" function logwrite($str) { $str = (Get-Date).ToString("yyyy/MM/dd HH:mm:ss") + ":" + $str $str|Out-File -Append $LOGFILE -Encoding utf8 } logwrite("【情報】ログを出力します。")
ファイルが作成されます。
まとめ
今回はPowerShellでログファイルを出力する方法について説明しました。