LoginSignup
18
34

More than 3 years have passed since last update.

PoweShellでのファイル出力方法あれこれ

Last updated at Posted at 2019-10-16

はじめに

 PowerShellではシェルの実行結果をファイルへ出力するのに様々な方法が存在している。
 どのようなコマンドがあり、それぞれどのような特徴があるのか。まとめてみました。

Start-Process の-RedirectStandardOutput

Start-Processの基本構文
 Start-Process -FilePath プログラム -ArgumentList オプション -RedirectStandardOutput ログファイル

特徴
・別プロセスで実行したプログラムの結果を出力させる方法
・基本的にはファイル出力のみ
・追記は不可

「Start-TranScript」と「Stop-TranScript」

「Start-TranScript」と「Stop-TranScript」の使用例
Start-Transcript -Path hoge.txt

Stop-Transcript

特徴
・スクリプト内で範囲を絞っての出力が可能
・「Start-Transcript」と「Stop-Transcript」の2つで1セット。
・コンソールとファイル、両方に出力される。
・追記は不可

Tee-Object

Tee-Objectの使用例
 ping 127.0.0.1 | Tee-Object -FilePath hoge.txt

特徴
・出力はUnicodeのみ。エンコード指定はできない。
・ファイルが存在しない場合は作成される
・コンソールとファイル、両方に出力される。
・追記は不可

リダイレクト

ping 127.0.0.1 >> hoge.log

メモ
「>」 :ファイルへ出力(上書き)
「>>」:ファイルへ出力(追記)
「2>」:エラーメッセージのみファイルへ出力(上書き)
    実行結果はコンソールへ表示。
「2>>」:エラーメッセージのみファイルへ出力(追記)
     実行結果はコンソールへ表示
「2>&1」:エラーメッセージを変数$Errorへ格納し、コンソールにも表示する。
     実行結果はコンソールへ表示。

Out-File

Out-Fileの使用例
 Out-File -FilePath hoge.txt [-Append][-Encoding] 

特徴
・「-Append」オプションを用いることで追記が可能。
・「-Encoding」文字コードを指定してのエンコード変換出力が可能。
・ファイルへのみ出力される(コンソールへは表示されない)

「Set-Content」と「Add-Content」

「Set-Content」と「Add-Content」の例
    Get-Date | set-content -Paht hoge.txt
    ping 127.0.0.1 | Add-Content -Path hoge.txt

特徴


Set-Content

・ファイルが存在できない場合は新規にファイルを作成する

・既存ファイルへの追記はできない

Add-content

・既存ファイルへの追記のみ可能。

・ファイルが存在しない場合はエラーとなる

18
34
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
34