LoginSignup
0
0

More than 5 years have passed since last update.

Powershellの-Pathパラメータの挙動が怪しかったので備忘

Posted at

書きたいこと。

  • あくまで備忘録。ちゃんと検証とかしていない。
  • 発生条件がはっきりしておらず、他の環境で発生するか分からず。

事象の環境

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 }"

これはうまくできる。なぜだろう……

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0