satocchiaブログ

satocchiaブログ

PR

×

キーワードサーチ

▼キーワード検索

プロフィール

satocchia

satocchia

カレンダー

お気に入りブログ

まだ登録されていません

コメント新着

tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia @ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9 @ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…
y__@ Re:uwscでGUIフォーム(05/12) UWSC 仮掲示板から飛んできました。 HTAで…

フリーページ

2021.06.09
XML
カテゴリ: powershell
いや、switchってたって、せっかく買ったのにお蔵入りして3DSばっかやってるあの機械のことじゃありません。

powershellのswitch文のすごいところは、「switch」に続くカッコ内(「制御式」というらしい)に、単一の値だけじゃなくて、配列だのコレクションだのをじゃんじゃか書けること。

例えば

switch ( gci . ){
    {$_.lastwritetime -gt [datetime]::now.AddYears(-1)}{$_.fullname}
}

でカレントディレクトリにある1年以内のファイルをリストアップできちゃたりする。

これ便利だけど、その分、ロジックとか追いにくくて難しいんだよね。

そして、もう一つ。制御式とCase句の判定にワールドカードや正規表現などさまざまなオプションが使えること。それだけじゃない。
Case句には文字列や数値だけでなく、ブレース({})でくくった任意の式も書けるので、ほとんどどんなことでも判定できちゃう。

さて、前置きはこれくらいで、テストパターン。

switch -Regex ("a b c d" -split " ") {
    "a|b"{ "$_`ta_b match" }
    "a|c"{ "$_`ta_c match" }
    default{ "$_`tdefault" }
}

これで、次の結果が出力される。

aa_b match
aa_c match
ba_b match
ca_c match
ddefault





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2021.06.09 12:01:05
コメント(0) | コメントを書く
[powershell] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: