こんにちは。
けいぞうです。
今回は「PowerShellでよく使うプロパティ/メソッド」について10個紹介します。
[目次]
- オブジェクトの個数を返す: Count
- 文字列の長さを返す:Length
- 指定した文字を含むか調べる:Contains
- 指定した位置から指定した長さの文字を返す:Substring
- 文字列など挿入する:Insert
- 文字列などを削除する:Remove
- 文字列などを置き換える:Replace
- 指定した文字列終わるか調べる:EnddWith
- 指定した文字列で始まるか調べる:StartsWith
- 指定した文字で分割する:Split
目次
オブジェクトの個数を返す: Count
例えば、こんな配列を作ったとします。
$a = @(1,2,3,4,5,6,7,8,9)
1~9まで合計9個の数値が入った配列です。
もちろんこの配列の要素の個数は9個です。
それをCountで取得するとこのようになります。
>$a.Count
9
もちろん配列以外にも要素の個数を数えることができる全てのオブジェクトで使うことができます。
文字列の長さを返す:Length
例えばこんな文字列があったとします。
$str = “abcdefg”
a~gの7文字なので、Lengthプロパティで、7が返ってきます。
>$str.Length
7
このLengthプロパティですが、対象が文字列ではなかった場合はCountのような振る舞いをしてくれます。例えば先ほど作成した
$a = @(1,2,3,4,5,6,7,8,9)
この配列に対してLengthをとってみると
> $a.Length
9
配列の要素の個数である9が返ってきました。
指定した文字を含むか調べる:Contains
例えばこんな文字列があったとします。
$str = “私が頼んだのはチキンカツカレーです。”
この文字列に「ハンバーグカレー」が含まれているかを調べるには、以下のように記述します。
>$str = “私が頼んだのはカツカレーです。”
>$str.Contains(“ハンバーグカレー”)
False
もちろん、私はハンバーグカレーなど1度も口にしていないので、返ってきたのはFalseです。
含まれる文字列であれば、Trueが返ってきます。
>$str.Contains(“カツカレー”)
True
指定した位置から指定した長さの文字を返す:Substring
例えばこんな文字列があったとします。
$str = “私が頼んだのはカツカレーです。”
ここから「カツカレーです」だけを取り出したい場合は以下のように記述します。
>$str.Substring(7,7)
カツカレーです
これは、文字列の7番目から、7文字取得する。という意味になります。
ちなみに全てのプログラミング言語で共通なのですが、最初は0番目からスタートします。なので、最初の文字「私」は0文字目、「が」は1文字目、という風に考えます。
でも、文字数の長さは「a」これで1文字、「bb」これで2文字なんですね。
あーーややこしい!!!
文字列など挿入する:Insert
例えばこんな文字列があったとします。
$str = “私が頼んだのはカレーです。”
この味気ない注文にカツを添えるにはこう書きます。
>$str.Insert(7,”カツ”)
私が頼んだのはカツカレーです。
素敵ですね✨
文字列などを削除する:Remove
例えばこんな信じられない文字列があったとします。
$str = “私が頼んだのはハンバーグカレーです。”
この悪魔の注文をノーマルに変身されるにはこう書きます。
>$str.Remove(7,5)
私が頼んだのはカレーです。
グッドですね👍
でもちょっと物足りないので、こうしてみます。
>($str.Remove(7,5)).Insert(7,”カツ”)
私が頼んだのはカツカレーです。
素晴らしいですね!✨
このように、プロパティを使って返ってきた値にさらにプロパティを使いたい場合は、かっこ()でくくってさらにドットで繋げて挙げればOKです。
文字列などを置き換える:Replace
再びやってきたこんな文字列があったとします。
$str = “私が頼んだのはハンバーグカレーです。”
これを一発で素敵な文字列に変える場合は、このように書きます。
>$str.Replace(“ハンバーグ”,”カツ”)
私が頼んだのはカツカレーです。
本当に素晴らしいですね。
第一引数が文字列中に含まれる文字列、第二引数が置き換えたい文字列です。
第一引数の文字列が複数含まれている場合は全て置換してくれます。
指定した文字列終わるか調べる:EnddWith
例えばこんな文字列があったとします。
$str = “今食べたいのはチキンカツカレー”
この文字列が「チキンカツカレー」で終わっているかどうかを確かめるにはこう書きます。
>$str.EndsWith(“チキンカツカレー”)
True
指定した文字列で始まるか調べる:StartsWith
例えばこんな文字列があったとします。
$str = “カツカレーが好きな人に悪い人はいない”
この文字列が「カツカレー」で始まるかどうかを確かめるにはこう書きます。
>$str.StartsWith(“カツカレー”)
True
指定した文字で分割する:Split
ラストです。
こんな文字列があったとします。
$str = “カツカレー,チキンカツカレー,海老カツカレー,野菜カレー”
これで1つの文字列ですが、「,」で分割した配列に変換するにはこのように書きます。
>$str.Split(“,”)
カツカレー
チキンカツカレー
海老カツカレー
野菜カレー
素晴らしいラインナップですね!!!
よく使うプロパティ達なので、是非これくらいは覚えておくと便利かもしれません!
最近のコメント