2009-05-12 16 views
1

powershellのガイドラインでは、スクリプトのエイリアスの使用を避けることが推奨されています。 gcを使用せず、%の代わりにForeach-Objectを使用する代わりに、Get-Contentと入力してください。Powershellスクリプトの 'dir'エイリアスを避けるべきですか?

これは良いアドバイスだと思っていますが、私はdirエイリアスで、少なくともファイルシステム(レジストリなど)と一緒に使用すると、それに続くのが苦労しています。 dirは、わかりやすく、Get-ChildItemと同じかそれ以上です。また、gcGet-Content)やlpOut-Printer)のようにはあまり秘密ではありませんが、cmd.exeスクリプトの背景を持っていない人もそう思わないかもしれません。

誰でもこのことについて意見がありますか?私はdirを続けて使うべきですか、それとももっと正しいものにしようとしますか?

答えて

8

エイリアスは入力に問題ありません。しかし、スクリプトで、それを綴る。あなたは何を失いますか?

+0

を避けたことがない、なぜ私は表示されません。私は「あなたは何を失うのですか?」という良い答えを出すことができないという理由で、この答えを受け入れるつもりです。つまり、私は実際に 'dir'を使用するケースはあまりありません。結局、Get-ChildItemを使用することにしました。 – Charlie

6

私は個人的にはスクリプトのエイリアスを避けますが、私はコマンドラインでそれを使用します。私が持っている2つの例外は何ですか? Where-Objectの場合はForEach-Objectの場合は%を指定します。私はそれらをいつも使っています。しかし、私の個人的な大会です。したがって、他のビルトインエイリアスもうまく使用できない正当な理由はありません。

しかし、非標準エイリアスの使用を避けるべきです。 PowerShell ISEの機能をDoug Finkeが作って、エイリアスを本名に拡張しました。

http://dougfinke.com/blog/index.php/2009/01/03/expand-alias-for-powershell-integrated-scripting-environment/

そして、私はあなたのスクリプトが依存するものを非標準的なコマンドを示しPowerShellのISEのために、このスクリプトを作成しました。エイリアスも考慮します。

http://einsteintech.spaces.live.com/blog/cns!89E05724AF67A39E!840.entry

+0

私はいくつかの例外を除いてスクリプトでエイリアスを使用しないようにしています。私がファイルシステムプロバイダに対してget-childitemを実行している場合、私はDIRを使います。なぜなら、それはより読みやすいからです。私は時にはget-wmiobjectの代わりにgwmiを使用することもあります。なぜなら、それはずっと短く(そして、gwmiの行は通常、とにかく長いためです)。 –

4

PowerShellの哲学では、コマンドプロンプトでに慣れものを使用することです。 Get-ChildItemのエイリアスとして 'ls'と 'dir'の両方があるのはこのためです。ただし、スクリプトやワンライナーなどを書くときには、混乱を避けるために必ず完全なコマンド名と完全な引数名を使用してください。特に、カスタムエイリアスはスクリプト内で使用しないでください。これらのエイリアスは環境外のスクリプトを壊すためです。

+0

ガイドラインの良い要約、ありがとう。 – Charlie

0

...私はまあ置い「LS」:)

関連する問題