Hatena::ブログ(Diary)

いろいろ備忘録日記 このページをアンテナに追加 RSSフィード Twitter

2009-02-04 02月04日の日記 (2009年)

[][] PowerShell入門記-001 (事始め)


前からPowerShellは知っていましたが、手はほとんど付けていない状態でした。

ちょこっと触ってみたらすんごく便利!!unixシェルみたいなものと思って

いたのですが、全然違うやん!!

ってことで、がんばって入門してみます。

既にあちこちのサイトや書籍があるのですが、それがあるのを承知の上で

基礎の基礎からいろいろ書いてみたいと思います。(私が全然知らないので・・w)

まずは、情報収集するためのリソース探し。(順不同)


んで、後はいろいろ遊ぶ際にコマンドラインよりも出来ればIDEとかの

方がいいので探してみたら以下のようなものがありました。

フリーのIDEです。でもすごく良く出来てます。UIも綺麗。

エディタ部分にActiproSoftwareのエディタコンポーネント

使っている事に胸キュンです。w

こちらは有償です。現在$145で購入できるみたいです。

トライアル版はまだいれてないのですが、スナップショット

みた限り機能豊富そうです。


せっかく、DevExpress持っているので自分用にPowerShellのツール

つくってみようかなって思った今日この頃。


これで、大体情報はそろったので後はいじりまくってみるのみです。

シェルなので、やっぱり最初はヘルプの表示からです。

unix系のシェルでも最初に覚えるのはmanからです。

てことで、

man ls

って試しに打ってみたら出た!!すげぇこれ。

manはget-helpのエイリアスなんですね。てことは

lsマニュアルを見た感じget-childitemっぽい。

get-childitem /

出た。


ちなみに、PowerShellのコンソールでは補完が効きますので、

get-chi

ぐらいでtabキーを押下したら補完できます。


まだなんも知らないのでとりあえずPowerShellに付属している

ドキュメントから読んでみます。

YokoKenYokoKen 2009/02/04 12:55 お、PowerShell デビューですね
.NET Framework が利用できるスクリプト言語ということで非常に頼もしいです
汎用的なコマンドレットとして、Select-Object、Where-Object、ForEach-Object 辺りを早めに覚えておくと便利ですよ〜

gsf_zero1gsf_zero1 2009/02/04 13:25 どもです。

デビューしてみました。まだまだ全然ですがw
YokoKenさんのブログも参考にさせてもらいますです〜。

>汎用的なコマンドレットとして、Select-Object、Where-Object、ForEach-Object 辺りを早めに覚えておくと便利ですよ〜
ふむふむ。飯食いながら調べてみました。
パイプを通してつかうコマンドなんですね〜。

Get-ChildItem / | Where-Object { $_.Name -like "*.txt"} | Select-Object Name | ForEach-Object $_ { Write-Host $_.Name.ToUpper() }
こんな感じなのかな?

パイプにオブジェクトが流れるのですね。こりゃ便利だ〜。

$_なんかが、ちょっとperlちっく。

YokoKenYokoKen 2009/02/04 16:12 > YokoKenさんのブログも参考にさせてもらいますです〜。

ありがとうございます^^


> Get-ChildItem / | Where-Object { $_.Name -like "*.txt"} | Select-Object Name | ForEach-Object $_ { Write-Host $_.Name.ToUpper() }
> こんな感じなのかな?

そんな感じですw
あ、ForEach-Object の直後の $_ は不要です。
# あれ、あっても動作するんですね

ちなみに (もうご存じかもですが)
Select-Object は select というエイリアス
Where-Object は ? というエイリアス (あと where ってエイリアスも)
ForEach-Object は % というエイリアス (あと foreach ってエイリアスも)
が用意されているので便利ですよ

> $_なんかが、ちょっとperlちっく。

僕は Perl 全然知らないですが、変数の書き方は Perl の影響を受けてるって
PowerShell 開発チームメンバーの書籍に (確か) 書かれてました

gsf_zero1gsf_zero1 2009/02/04 18:35 >ちなみに (もうご存じかもですが)
>Select-Object は select というエイリアス
>Where-Object は ? というエイリアス (あと where ってエイリアスも)
>ForEach-Object は % というエイリアス (あと foreach ってエイリアスも)
>が用意されているので便利ですよ
なるほど・・。勉強になります。m(_ _)m

lsもGet-ChildItemのエイリアスですもんね。(さっき知ったんですがdirも同じGet-ChildItemだったです)

けろ-みおけろ-みお 2010/01/23 14:37 PowerShellデビューしちゃいましたね。
きっかけは、techbank.jp でHIROさんが書いた、あのネタですよね。
ちなみに、このエントリでも紹介している
HIROS's.NET と PowerShell from Japan!! は、両方とも
HIROさんが運営されてます。
よこけんさんも、PowerShell from Japan!! でネタを掲載されていらっしゃいますし、ぜひ、ご購読を宜しくお願いします。

>あ、ForEach-Object の直後の $_ は不要です。
># あれ、あっても動作するんですね

ForEach-Object の直後に $は確かに要らないですね。
それから、
Get-ChildItem | Where-Object { $_.Name -like "*.txt"} | ForEach-Object $_ { Write-Host $_.Name.ToUpper() }
って書いても同じ結果になります。
Select-Object Name なしでも、この例の場合、いけますよ

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/gsf_zero1/20090204/p1