2016-12-31 18 views
2

の命名者は、私はこのcommmandを含んでPowerShellスクリプトを書いたとしましょう:Microsoftの一貫性は

Get-ChildItem -Recurse 

をしかし、代わりに私が書いた:

Get-ChildItem -Re 

を時間を節約します。 PowerShellバージョンをアップグレードした後、MicrosoftはGet-ChildItemに「-Return」というパラメータを追加することにしました。たとえば、アイテムが見つかったかどうかによってTrueまたはFalseが返されます。

仮想シナリオでは、以前のすべてのスクリプトを編集して、スクリプトが期待どおりに機能するようにする必要がありますか?私はタイピング時間を節約しようとするMicrosoftの試みを理解していますが、これは私の懸念事項です。したがって、おそらく完全なパラメータ名を書くつもりです。

もちろん、あなたは私が知らないことを知っていない限り、あなたの洞察をありがとう!

答えて

11

これは、より多くの暴言などの問題よりも聞こえるが、答えるために:その仮想シナリオで

を、私は期待通りにスクリプトが機能することを保証するためにすべての私の元のスクリプトを編集する必要がありますか?

はい!

あなたは常には、スクリプト内で完全なパラメータ名(または再利用可能なコードの他のスニペット)を使用する必要があります。

PowerShellを対話的に使用すると、部分的なパラメータ名、エイリアス、およびその他のショートカットを自動的に解決することが便利です。

ls -re *.ps1|% FullName 

我々はプロファイル内のすべてのスクリプトへのパスを見つけたいとき:それは、私たちはpowershell.exeを起動して行うことができます。探検に最適!

しかし、私は、私はどうなるのスクリプトにその機能を組み込むためにあたかも:

Get-ChildItem -Path $Home -Filter *.ps1 -Recurse |Select-Object -ExpandProperty FullName 

だけではなく、あなたが言及した理由のため、だけでなく、一貫性と可読性のために - 私の同僚に沿って、多分来る場合私が使用しているショートカットに慣れていないので、パイプラインからの意味と予想される出力を見分けることができます。


注:PSScriptAnalyzerで、このための警告ルールを追加するには、GitHubの上で、現在threeopenissuesがあります - 私は、プロジェクトのメンテナが、この:-)とあなたのための

+0

おかげで手を大好きだと確信しています回答。それは暴言ではありませんが、私は普及した書籍「1か月でWindows PowerShellを学ぶ」を読んでいましたが、作者はスクリプトでこの要件を指定していませんでした。彼はちょうどあなたが短いパラメータなどを書くことができると言ったので、私はそれについて私が聞いたことがないことについてマイクロソフトが何かを持っているかどうかを知ることを尋ねることが重要だと思った。とにかく、あなたが言ったことはかなり意味があります。どうもありがとう。 –

+0

私は正式な参照を見つけることができませんが、このトピックを議論したすべての関連するマイクロソフトの従業員とMVPは、点滅なしで同意します –

+0

編集:私が言及した本の著者は*後の章で説明します。私はちょうど彼に適切なクレジットを与えるためにこの情報を修正したかった。 –