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