PowerShell 文字列関連
PowerShellの文字列関連をまとめます。
■文字の出力
文字列はシングルクォーテーション('文字列')かダブルクォーテーション("文字列")で囲みます
ダブルクォーテーションの場合、変数名は変数値に置き換わります。シングルクォーテーションはそのまま出力されます。
$aaa = "X"
#ダブルクォーテーションの場合、$aaa が X で出力される
echo "123 $aaa 456"
#シングルクォーテーションの場合、$aaa が $aaa で出力される
echo '123 $aaa 456'
#スペースタブなどを間に入れないと途中で出力されてしまう
echo "123$aaa456"
(出力結果)
123 X 456
123 $aaa 456
123
■変数名、シングルクォーテーション、ダブルクォーテーションを出力
ダブルクォーテーションでもアクサン・グラーヴ(`)を付けると変数名で出力されます。
シングルクォーテーション、ダブルクォーテーションもこれをつけると出力出来ます。
アクサン・グラーヴ(`)はShift押しながら@のキーで入力できます。
$aaa = "X"
#アクサン・グラーヴ(`)を頭にいれると$aaaで出力される
echo "123 `$aaa 456"
#シングルクォーテーション、ダブルクォーテーションも出力できる
echo "`'`""
#シングルクォーテーション、ダブルクォーテーションは連続しても出力される
echo "a""b'c"
echo 'a"b''c'
(出力結果)
123 $aaa 456
'"
a"b'c
a"b'c
■タブ文字、改行文字の出力
#タブ文字(`t)、改行文字(`r`n)を出力
echo "タブ文字`t改行文字`r`nを出力"
(出力結果)
タブ文字 改行文字
を出力
タブ文字や改行文字を使う場合も、`(アクサン・グラーヴ)を使用します。
■文字の編集
#連結
$aaa = "a" + "b"
$aaa += "c"
echo $aaa
#echoの場合、カッコをつけないと改行される
echo "12" + "34"
echo ("56" + "78")
#置換はReplaceを使用
echo "123123".Replace("23", "ab")
(出力結果)
abc
12
+
34
5678
1ab1ab
■文字列の抜き出し(文字数)
文字の抜き出しはSubstringを使います。
$aaa = "1234567890"
#指定位置から後ろを取得(開始位置:0~)
echo "1234567890".SubString(2)
#一部を取得(開始位置:0~、文字列長)
echo "1234567890".SubString(1,2)
(出力結果)
34567890
23
■文字列の抜き出し(バイト数)
#指定バイトの文字を抜き出し
function SubstringB($str,$start,$length){
#SJISでバイト計算
$encoding = [Text.Encoding]::GetEncoding(932)
#UTF8でバイト計算
#$encoding = New-Object System.Text.UTF8Encoding $False
$bytes = $encoding.GetBytes($str)
return $encoding.GetString($bytes, $start, $length)
}
#対象文字列
$input = "123四56789"
#指定バイトを出力
$output = SubstringB $input 6 3
echo $output
(出力結果)
678
■文字列を指定文字で分ける
指定文字で区切って配列はSplitを使います。
#指定文字で区切って配列作成
$strs = "1,23,456".Split(",")
#配列の指定位置を出力
echo $strs[0]
echo $strs[1]
#配列の長さを取得
echo $strs.Length
(出力結果)
1
23
3
■文字列の長さ取得
#文字列の長さを取得
echo "12345".Length
(出力結果)
5
文字列の比較など・・・
#指定文字が含まれるか
echo "1234567890".contains("456")
#指定文字から始まるか
echo "1234567890".StartsWith("123")
#指定文字で終わるか
echo "1234567890".EndsWith("890")
#同じ文字列か
echo ("123" -eq "123")
#大きさ比較
echo "001".CompareTo("002")
#指定文字の位置
echo "1234567890".IndexOf("345")
(出力結果)
True
True
True
True
-1
2
(参考)
演算子 | 概要 |
---|---|
-eq | 等しい(==)。大文字、小文字を意識しない 意識する場合は-ceqとする |
-ne | 等しくない(!=) |
-gt | より大きい(>) |
-ge | 以上(>=) |
-lt | 未満(<) |
-le | 以下(<=) |
-like | あいまい検索 ワイルドカード:* 一文字:? 否定の場合は -notlike とする |
-match | 正規表現 否定の場合は -notmatch とする |
ページのトップへ戻る