Windows PowerShell 入門(4)-変数と演算子
Windows PowerShellにおける変数と演算子の使用方法について学びます。今回は代表的な演算子として、算術演算子、代入演算子、論理演算子、比較演算子、範囲演算子、置換演算子、ビット演算子、型演算子、包含演算子、単項演算子を取り上げます。
対象読者
- Windows PowerShellでコマンドレット操作ができる方
- 何らかのプログラミング経験があればなお良い
必要環境
- Windows PowerShell
変数
変数を宣言する
PowerShellでは、変数は必ず$記号で始まり、文字、数字、記号、およびスペースを組み合わせて指定します。
変数を宣言するには
$var = "Test"
のように変数に値を割り当てるか、New-Variableコマンドレットを使用して
New-Variable var -value "Test"
のように入力します。
また、コンソールウィンドウ上で変数の中身を確認するには、単純に変数名の後に[Enter]キーを押します。
$var[Enter]
変数名は大文字/小文字を区別しないので$varは$Varや$VARと記述しても同じ変数を指します。
スペースを組み合わせた変数を作成して使用する場合は
${var x} = "Test"
のように、{} を使用します。
変数の型を確認する
先ほどの変数への代入
$var = "Test"
では、文字列(2重引用符で括ることで文字列を表現します)を代入してるため、$varは.NET FrameworkのString型となります。
$varの型を実際に確かめるにはコンソールウィンドウで
$var.GetType()
と入力し、[Enter]キーを押してください。

$varがString型であることを確認できました。
今度は、現時点でString型である$varに数値を代入してみましょう。コンソールウィンドウで
$var = 3
$var.GetType()
と入力し、[Enter]キーを押してください。

Int32に変更されていることが分かります。このように、PowerShellの変数は代入した値に合わせて型が自動で決定されます。
PowerShellでは変数の型を明示的に指定することもできます。試しにコンソールウィンドウでint型の変数$intを作成し、その後に文字列"Test"を代入するという実験を行ってみましょう。
[int]$int = 3
$int = "Test"

値 "Test" を型 "System.Int32" に変換できません。
エラー: "入力文字列の形式が正しくありません。"
発生場所 行:1 文字:5
+ $int <<<< = "Test"
というエラーが発生します。
このように、明示的に型を指定した場合には、その型以外のデータは代入できなくなります。
演算子
演算子と一口に言っても、PowerShellで使用可能な演算子は多数あります。代表的な演算子について例を挙げながら説明していきます。
算術演算子
算術演算子は四則演算を表す演算子です。PowerShellで使用可能な算術演算子は次のとおりです。
| 演算子 | 説明 |
| + | 2つの値を加算する |
| - | 一方の値から他方の値を減算する |
| - | 値を負の数値に変換する |
| * | 2つの値を乗算する |
| / | 2つの値で除算を行う |
| % | 除算で発生した余りを返す |
また、演算子には次の優先順位があります。演算の順番を変更するには、優先したい演算を「かっこ ()」で括ります。
- - (負の数を表すマイナス記号)
- *、/、%
- +、- (減算を表すマイナス記号)
では、算術演算子を使用して四則演算を行ってみましょう。コンソールウィンドウで下記のように入力してみてください。
PS C:\Work> 2 + 8 * 3
優先順位に従って、8 * 3を実行した後に 2 を加算したので、結果として26が返されます。
代入演算子
代入演算子は文字通り、値を代入するための演算子です。代入演算子には次のものがあります。
| 演算子 | 説明 |
| = | 指定した値を変数に設定します。 |
| += | 指定した値を変数の値に加算するか、指定した値を既存の値に追加します。 |
| -= | 指定した値を変数の値から減算します。 |
| *= | 指定した値で変数の値を乗算するか、指定した値を既存の値に追加します。 |
| /= | 指定した値で変数の値を除算します。 |
| %= | 指定した値で変数の値を除算し、余りを変数に代入します。 |
いくつか例を示します。
まず = 演算子です。変数の項でも触れましたが、= 演算子を使用することで変数に値を代入できます。
PS C:\Work> $val = "Test"
次に += 演算子ですが、この演算子は変数の値を増加(インクリメント)または追加します。
下記は、初期値として変数 $a に 1を与え、その後に += 演算子で2を加算しています。結果として 3 が変数にセットされます。
PS C:\Work> $a = 1
PS C:\Work> $a += 2
PS C:\Work> $a
3
+=演算子は(*=演算子も)文字列に対しても使用することができます。
文字列の場合は、変数に直前に入っていた文字列に対して、新しい文字列を追加します。下記を実行すると、それぞれの文字列が連結して"Windows PowerShell"という文字列が変数にセットされます。
PS C:\Work> $a = "Windows "
PS C:\Work> $a += "Power"
PS C:\Work> $a += "Shell"
PS C:\Work> $a
Windows PowerShell
*=演算子は、1つの文字列を指定した数値分だけ連結して返します。
下記は "Test" という文字列を3つ連結し、結果として "TestTestTest"という文字列が変数にセットされます。
PS C:\Work4> $a = "Test"
PS C:\Work4> $a *= 3
PS C:\Work4> $a
TestTestTest
論理演算子
論理演算子は与えられた引数を評価し、1つの出力(TrueまたはFalse)を返します。論理演算子には次のものがあります。
| 演算子 | 説明 |
| -and | 論理積 |
| -or | 論理和 |
| -not | 論理否定 |
| -! | 論理否定 |
下記は変数$ageが30以上で40より小さいかどうかを-andで判定しています(-geや-ltに関しては、本記事の「比較演算子」の項を参照ください)。
PS C:\Work> $age = 35
PS C:\Work> ($age -ge 30) -and ($age -lt 40)
PS C:\Work> True
比較演算子
比較演算子は与えられた引数を評価し、1つの出力(TrueまたはFalse)を返します。比較演算子には次のものがあります。
| 演算子 | 説明 |
| -eq | 等しい |
| -ne | 等しくない |
| -gt | より大きい |
| -ge | 以上 |
| -lt | より小さい |
| -le | 以下 |
| -like | ワイルドカードによる比較 |
| -notlike | ワイルドカードによる比較 |
| -match | 正規表現による比較 |
| -notmatch | 正規表現による比較 |
下記は変数 $val が 数値の3に等しいか評価しています。
PS C:\Work> $val = 3
PS C:\Work> $val -eq 3
True
次に -like演算子の例ですが、下記は文字列"PowerShell"が"Power"で始まっているかをlike検索しています。
PS C:\Work> "PowerShell" -like "Power*"
True
-match演算子は、文字列を正規表現と比較し一致するかどうかに応じてTrueまたはFalseを返します
PS C:\Work> "PowerShell" -match "Shell"
True
範囲演算子
範囲演算子を使用すると、ステートメント内で使用できる値の範囲を指定することができます。範囲演算子は2つのピリオド(..)で表現されます。
範囲演算子は次のように記述します。
範囲の開始値..範囲の終了値
下記は、1~5までの繰り返しを意味しています。
PS C:\Work> foreach ( $cnt in 1..5 )
>> {
>> Write-Host $cnt
>> }
>>
1
2
3
4
5
置換演算子
置換演算子は、指定した値で元の値の一部または全体を置き換えることができます。置換演算子は下記に示すように3つあります。
| 演算子 | 説明 |
| -replace | 半角英字の大文字/小文字を区別しないで置換する。 |
| -ireplace | 同上。 |
| -creplace | 半角英字の大文字/小文字を区別して置換する。 |
演算子の先頭に"i"をつけた場合(-ireplace)と、先頭に何も文字を付加しない場合(-replace)は大文字と小文字を区別しません。また、演算子の先頭に"c"を付けた場合(-creplaces)は大文字と小文字を区別します。
文字を置換するという意味では一緒ですが、半角英字の大文字/小文字の区別をするかどうかで使用する演算子が異なることに注意してください。
置換演算子は下記のようにして使用します
"置換対象文字列" -replace "置換したい文字(列)", "置換後の文字(列)"
下記は"MagaZine"という文字列を"CodeZine"へ置換します
PS C:\Work> "MagaZine" -replace "Maga","Code"
ビット演算子
ビット演算子は、ビットの比較によって生成された値を返します。ビット演算子には次のものがあります。
| 演算子 | 説明 |
| -band | ビット And |
| -bor | ビット Or |
下記は数値10と12のビットAND演算を行います。
PS C:\Work> 10 -band 12
8
なぜ8を返しているかですが、上記は2進数で計算してみると
1010 (10)
AND 1100 (12)
-------------
1000 (8)
となるからです。
型演算子
型演算子を使用すると、指定した値の型を判定することができます。型演算子には次のものがあります。
| 演算子 | 説明 |
| -is | 指定された型である。 |
| -isnot | 指定された型ではない。 |
演算結果は TRUEまたはFALSEで返されます。下記は数値の3がint型であるかを確認します。
PS C:\Work> 3 -is [int]
True
包含演算子
包含演算子を用いると、コレクションの中に指定した値が含まれているかどうかを確認することができます。包含演算子には次のものがあります。
| 演算子 | 説明 |
| -contains | コレクションに指定した値が含まれている |
| -notcontains | コレクションに指定した値が含まれていない |
演算子の先頭に"i"をつけた場合(-icontains および -inotcontains)と先頭に何も文字を付加しない場合(-contains, -notcontains)は大文字と小文字を区別しません。また、演算子の先頭に"c"を付けた場合(-ccontains, -cnotcontains)は大文字と小文字を区別します。
下記は数値1,2,3,4,5のいずれかに3が含まれているかを評価します
PS C:\Work> 1,2,3,4,5 -contains 3
True
下記は"ORANGE","BANANA","GRAPES" のいずれかに"BANANA"が含まれているかを評価します。
PS C:\Users\HIRO> "ORANGE","BANANA","GRAPES" -contains "BANANA"
True
単項演算子
単項演算子には次のものがあります。
| 演算子 | 説明 |
| ++ | インクリメント |
| -- | デクリメント |
| + | 正の数を表す |
| - | 負の数を表す |
下記は変数の値をインクリメントします
PS C:\Work> $a = 1
PS C:\Work> $a++
下記は負の数を表します
PS C:\Work> $a = -1
まとめ
Windows PowerShellにおける変数と演算子の使用方法について見てきました。今回紹介した内容をリファレンスとして活用いただければ幸いです。
次回は制御構文について説明したいと思います。
Windows PowerShell 入門(4)-変数と演算子的更多相关文章
- Windows PowerShell 入門(7)-関数編2
この連載では.Microsoftが提供している新しいシェル.Windows Power Shellの使い方を解説します.前回に引き続きPowerShellにおける関数の取り扱いとして.変数と関数のスコ ...
- Windows PowerShell 入門(3)-スクリプト編
これまでの記事 Windows PowerShell 入門(1)-基本操作編 Windows PowerShell 入門(2)-基本操作編 2 対象読者 Windows PowerShellでコマンド ...
- Windows PowerShell 入門(2)-基本操作編 2
前回に引き続きMicrosoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.基本操作編第2弾の今回は.パイプの使用方法を中心としたコマンドレットの操作方 ...
- Windows PowerShell 入門(6)-関数編1
この連載では.Microsoftが提供している新しいシェル.Windows Power Shellの使い方を解説します.今回は.関数の作成基礎と引数.戻り値.Switchパラメータについて説明します. ...
- Windows PowerShell 入門(8)-関数編3
この連載では.Microsoftが提供している新しいシェル.Windows PowerShellの使い方を解説します.今回は.フィルタ.スクリプトブロック.変数のスコープについて取り上げます. はじめ ...
- Windows PowerShell 入門(9)-エラー編
対象読者 Windows PowerShellでコマンドレット操作ができる方 何らかのプログラミング経験があればなお良い 必要環境 Windows PowerShell エラーをリダイレクトする リダ ...
- Windows PowerShell 入門(10)-デバッグ編
対象読者 Windows PowerShellでコマンドレット操作ができる方 何らかのプログラミング経験があればなお良い 必要環境 Windows PowerShell デバッグメッセージの出力 Po ...
- Windows PowerShell 入門(5)-制御構文
Windows PowerShellにおける制御構文について学びます.数ある制御構文の中でもSwitch文は.他の言語に比べ豊富な機能が用意されています. 対象読者 Windows PowerShel ...
- Windows PowerShell 入門(1)-基本操作編
Microsoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.インストール.起動終了方法.コマンドレット.命名規則.エイリアス.操作方法の調べ方について ...
随机推荐
- Properties读取properties配置文件
package cn.rocker.readProperties; import java.io.IOException; import java.io.InputStream; import jav ...
- weblogic优化(内存、线程数和启动速度)
一.为服务分配内存 1.一般如果服务所需的内存不一样,需要单独指定的话,我们是通过拷贝startWebLogic.sh文件,拷贝为startNode.sh(名字随意) 2.然后在startNode.s ...
- layui打印html页面转成pdf
<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8&q ...
- HDU 1036(平均速度 **)
题意是求出跑了 n 圈每圈 m km 的个人的平均速度. 控制格式,特别注意,题意是输出 -:--:-- 的该人成绩作废,但要把他其他的成绩输进去,不能直接就 break ,输出也就只有一个 - ,而 ...
- Docker 从入门到放弃(四)Docker+Jenkins_自动化持续集成
Windows 查看密码 $ cat /var/jenkins_home/secrets/initialAdminPassword 14e14c414f41481aa5955753d3f31f9f 自 ...
- Docker 从入门到放弃(一)安装
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任 ...
- 2018年度 35 个最好用 Vue 开源库
在本文中,我们将推荐一些非常好用的 Vue 相关的开源项目.无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包.对于开发者来说,如果没有这些开源软件包,很难想象我们的生活会变得多么疲惫不堪,而且靠 ...
- 四十一、Linux 线程——线程同步之条件变量
41.1 概念 41.1.1 条件变量的介绍 互斥锁的缺点是它只有两种状态:锁定和非锁定 条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足 条件变量内部是一个等待队列,放置等待 ...
- springboot04-mongodb
1.搭建mongodb服务 在https://www.mongodb.com/下载mongodb安装包,解压到本地 cmd中执行命令,启动本地mongodb: cd D:\Program Files\ ...
- 第26月第2天 vim javacomplete
1. 将解压出来的autoload 和 doc的内容添加到~/.vim/下的相应目录下,如果~/.vim下没有这两个文件夹就手动创建其中autoload里的有javacomplete.vim java ...