書きたいこと。
- あくまで備忘録。ちゃんと検証とかしていない。
- 発生条件がはっきりしておらず、他の環境で発生するか分からず。
事象の環境
MW | バージョン |
---|---|
OS | Windows7, Windows10 |
Powershell | 2, 5 |
何が起きたのか。
コマンドプロンプト上でPowershellを実行しました。
すると、出力系のコマンドレットで -Path や -LiteralPath がうまく処理されなかったのです。
cmd> powershell -Command "& { Get-ChildItem | Export-Csv -LiteralPath ./out.csv }"
cmd> powershell -Command "& { Get-ChildItem | Export-Csv -Path ./out.csv }"
cmd> powershell -Command "& { Get-ChildItem | Out-File -Path ./out.txt }"
この時本来であれば -Path
や -LiteralPath
に指定した先にファイルが出来上がるはずなのですが。
Out-File : パラメーター名 'Path' に一致するパラメーターが見つかりません。
発生場所 行:1 文字:28
- &{Get-ChildItem | Out-File -Path ./dir.txt}
~~~~~
- CategoryInfo : InvalidArgument: (:) [Out-File]、ParameterBindingException
- FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.OutFileCommand
こんな感じにPathがちゃんと見てくれない。
※Export-Csvはもしかしたらちゃんと動くかも。
代わりに、-Pathを明示的に指定しないで実行すると、
cmd> powershell -Command "& { Get-ChildItem | Out-File ./out.txt }"
これはうまくできる。なぜだろう……