メモの日々


2022年04月04日(月) [長年日記]

[windows] PowerShellで角括弧を含むファイルにアクセスする

PowerShell上で例えば、

  • test[1].txt

というファイルの内容を表示しようと

> get-content test[1].txt

としてもエラーになってしまう。

get-content : 指定されたパス test[1].txt にオブジェクトが存在しないか、-Include または -Exclude パラメーターによってフィルターされています。
発生場所 行:1 文字:1
+ get-content test[1].txt
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (System.String[]:String[]) [Get-Content], Exception
    + FullyQualifiedErrorId : ItemNotFound,Microsoft.PowerShell.Commands.GetContentCommand

原因は、角括弧がPowerShellのワイルドカードと解釈されるからみたい。

解決するには、「`」を使ってワイルドカード文字をエスケープする(更にシングルクウォートで囲う必要がある)

> get-content 'test`[1`].txt'

か、 -LiteralPath オプションを使用する。

> get-content -literalpath test[1].txt