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

ファイル入出力

※この記事は「2021年5月21日」に更新しました。

PowerShell(パワーシェル)講座です。

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

ビジネス

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

2019年2月8日

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

環境は、Windows 10(64bit)、PowerShell 6.1.2 です。

ぱそた
SE、Web制作、販売を経験した管理人が解説します。

ファイル出力

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

もちろん、PowerShell(パワーシェル)でも使えたりします。

ipconfig > outfile.txt

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

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

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

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

ipconfig >> outfile.txt

Out-File【PowerShellコマンドレット】

リダイレクト処理と似ているのが、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【PowerShellコマンドレット】

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

Get-Content -Path ./outfile.txt

最後に

いかがでしょうか。

今回は、ファイル入出力について、解説しました。

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

次回は、外部プログラムを実行する方法を紹介します。

外部プログラムを実行する

【PowerShell講座】外部プログラムを実行する

2020年1月10日

コツコツやっていきましょう。