[PS1] Powershell の基本 (1:変数と数値)

2014年10月15日
  1. コメント

    # で始まる。

    PS> # コメント
    PS> 
    
  2. 変数

     $ で始まる。

    • 単純変数
      PS> $a = 10  
      PS> $a
      10
      PS> 
      
    • 配列
      PS> $b = @(10,20,30)
      PS> $b[1]
      20
      PS> 
      
    • 連想配列

       囲みは波括弧、要素の区切りはセミコロンであることに注意。

      PS> $c = @{a = 100;
                 b = 200;
                 c = "A"}  
      PS> 
      PS> $c["a"]
      100
      PS> $c.b
      200
      PS> 
      

       要素=0 の連想配列を作ってから足していくこともできる。

      PS> $d = @{} 
      PS> 
      PS> $d["a"] = 300
      PS> $d.b = "AAA"
      PS> 
      PS> $d["a"]
      300
      PS> $d.b
      AAA
      
  3. コマンドレットの戻り値にアクセスする

     コマンドレットの戻り値にアクセスする場合は、変数に代入するか、() でコマンドレットを囲む必要がある。

    PS> $a = dir
    PS> $a.Count
    PS> (dir).Count  # dir.Count はできないことに注意
    PS> 
    PS> $b = dir c:
    PS> $b.Count
    PS> (dir c:).Count
    
  4. 算術関係演算子

     -eq -ne -ge -le -gt -lt。数学記号 =、<、> は使えないことに注意。

    PS> if ($a -eq 10) { …
    
  5. 算術演算子

     四則演算 … + - * /
     商 … なし (先に剰余を引いた後に / で計算するか、[Math]::DivRem を無理やり使う)
     剰余 … %
     冪乗 … なし ([Math]::Pow を使用)
     平方根 … なし ([Math]::Sqrt か [Math]::Pow を使用)

    PS> [Math]::DivRem(59,12,[ref]$null) # 商
    4
    PS> 59 % 12   # 剰余
    11
    PS> [Math]::Pow(10,2)   # 冪乗
    100
    PS> [Math]::Sqrt(3)   # 平方根
    1.73205080756888
    PS> [Math]::Pow(3,1/2)
    1.73205080756888
    

     ただし、[Math]::DivRem(~ は引数を int でキャストしてしまうために、除数/被除数が整数でない場合は意図した結果が出ない場合があります。

    PS> $quot = 0
    PS> [Math]::DivRem(5.7, 2.9, [ref]$quot)
    2      ← 5.7 が 6, 2.9 が 3 と評価されるために 2 が戻る ( 5.7/2.9 = 1.96 なので 1 を期待 )
    PS> $quot
    0      ← 剰余も同様に 6 % 3 相当と評価されるために 0 が戻る ( 同様に 2.8 を期待 )
    PS>
    PS>  5.7 % 2.9
    2.8    ← % 演算子の場合は、整数に丸めにられないので、小数点以下も戻る
    
  6. 論理演算子

    -and -or -xor -not

    PS> 1 -and 2
    True
    
  7. 論理演算子(ビット単位)

    -band -bor -bxor -bnot

    PS> 1 -bor 2
    3
    





タグ:
カテゴリー: PowerShell, Windows

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org