【PowerShell講座】ファイル入出力

ファイル入出力

前回は、オブジェクト操作について紹介しました。

【PowerShell講座】オブジェクト操作について

2019.02.08

今回は、ファイル入出力についてです。

それでは見ていきましょう。



ファイル出力

コマンドプロンプトだと、リダイレクト処理でテキストファイルに出力することができました。

もちろん、PowerShell でも使えたりします。

ipconfig > outfile.txt

こうすると、カレントディレクトリに outfile.txt というファイルが作成されているはずです。

中身を見てみると、ipconfig を実行した結果が記録されています。

これはコマンドプロンプトのときでもよく使われていました。

ちなみに追記したい場合は下記のようにします。

ipconfig >> outfile.txt

Out-File

リダイレクト処理と似ているのが、Out-File というコマンドレットです。

変数やコマンドの結果をテキストファイルに出力できます。

ほとんどできることは同じなんですが、細かいことを言うと、-Encoding というパラメータを使えば、ファイル出力エンコードを指定できるところです。

ちなみにデフォルトでは、BOM なし UTF-8 です。

あと -NoClobber という上書き防止策があります。

ちなみに先程のコマンドを実行した後に以下のコマンドを実行してみましょう。

dir > outfile.txt

こうすると、前回のファイル内容が上書きされているはずです。

しかし、Out-File というコマンドレットで -NoClobber というパラメータを指定すれば、上書きできません。

ipconfig | Out-File outfile.txt -Noclobber

エラーメッセージが出るはずです。

ちなみに追記したい場合は -Append パラメータを指定します。

date | Out-File outfile.txt -Append

最後に現在の日時が追記されているはずです。

【番外編】Set-Content と Add-Content

Out-File と似たコマンドレットで Set-Content(Add-Content)があります。

このコマンドレットは、読み込みにロックがかかります。

例えば、Out-File は、書き込んでる最中でも読み込み可能ですが、Set-Content(Add-Content)は読み込みにロックがかかります。

あとデフォルトのファイル出力フォーマットが異なります。

ファイル入力

ファイル入力は、PowerShell では、主に Get-Content というコマンドレットを使います。

それでは見ていきましょう。

Get-Content

Get-Content と使えば、テキストファイルから平文で文字列を読み込むことができます。

Get-Content -Path ./outfile.txt

最後に

いかがでしょうか。

久しぶりに PowerShell を使いましたが、コマンドプロンプトのときと違って、やはりできることが幅広くなっていますね。

コツコツやっていきます。