Add-Contentコマンドレットの-Pathパラメータ

現在、PowerShell
Wiki
でAdd-Contentコマンドレットの使用方法についてまとめています。(サイト自体は今年の7月に立ち上げていたのですがこれから始動といったところです)

では、本題です。


Add-Contentコマンドレットは

指定した項目やファイルに内容を追加することができます。内容を指定するには、コマンドに内容を入力するか、内容が入力されているオブジェクトを指定します。指定した項目やファイルが存在しない場合は、新規で作成され、指定した値が追記されます。


基本構文

Add-Content -Path "パス文字列" -Value "追記する値"

です。実際には数多くのパラメータがありますが、後日紹介していきたいと思います。

今回取り上げるのは-Pathパラメータです。


-Pathパラメータは

内容を追加する先のパスを指定します。パスにはワイルドカードを指定することができます。また、カンマで区切ることで複数のファイルを指定することができます。

エスケープ文字を含むパスを指定することはできません。エスケープ文字を含むパスを指定したい場合は-literalPathパラメータを使用します。(PowerShellでは`(アクサングラーブ文字)がエスケープ文字として扱われます。)


使用例

–––––––––– -Pathパラメータの使用例1 ––––––––––

Add-Content -Path "test.txt" -Value "ABC"

このコマンドを実行すると、カレントディレクトリに存在する
test.txt
というファイルに"ABC"という文字列を追記します。
ファイルが存在しない場合は新規で作成され"ABC"という文字列を書き込みます。

––––––––––
-Pathパラメータの使用例2 ––––––––––

Add-Content -Path "test1.txt","test2.txt" -Value "ABC"

このコマンドを実行すると、test1.txt

test2.txtの2つのファイルに文字列"ABC"を追記します。
ファイルが存在しない場合は新規で作成され"ABC"という文字列を書き込みます。

––––––––––
-Pathパラメータの使用例3 ––––––––––

Add-Content -Path "*.txt" -Value "ABC"


このコマンドを実行すると、カレントディレクトリにある拡張子が*.txtのファイルに"ABC"という文字列を追記します。


–––––––––– -PathパラメータのNG例1 ––––––––––

Add-Content -Path "tes`t.txt" -Value "ABC"

このコマンドレットはパスにエスケープ文字`tが含まれているため「パスに無効な文字が含まれています。」のエラーが発生します。
エスケープ文字が含まれているパスを指定したい場合には-Pathパラメータの代わりに-literalPathパラメータを使用します。

––––––––––
-PathパラメータのNG例2 ––––––––––

Add-Content -Path "tes[t.txt" -Value "ABC"

このコマンドレットはパスに[が含まれているため「指定されたワイルドカード
パターンは無効です」のエラーが発生します。-Pathパラメータでは"["をワイルドカードととして認識します。この例で使用されている文字"["は正規表現で使用される文字であり"]"と対で使用しなければなりません。このようなファイル名を使用したい場合は-Pathパラメータの代わりに-literalPathパラメータを使用します。


まとめ

-Pathパラメータはワイルドカードを使用して、複数ファイルへ一気に同じ文字列を追記できるところがすごいですね。

ワイルドカードを使用できる分、-PathパラメータのNG例2のようにワイルドカード構成する文字を含むパスは指定できないという制限がありますが、-literalPathパラメータを使用すればこの問題は回避できます。

-Pathと-literalPathパラメータを使い分けるポイントとなりますね。

コメント

タイトルとURLをコピーしました