SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【Windows】コマンドプロンプトで計算をする

Windowsのコマンドプロンプトでは、

SETコマンドで計算ができる(WindowsXPではできないかもしれない)。

コマンドプロンプト

コマンドプロンプトで作業中に、ささっと計算もできる。

C:\>set /a 1+1
2
C:\>set /a 1 + 1
2
C:\>set /a 2*3
6
C:\>set /a 60*60*24*30
2592000
C:\>set /a 1000/(24*30)
1
C:\>set /a 1000*1000/(24*30)
1388
C:\>set /a 7&5
7'5' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\>set /a "7&5"
5
C:\>set /a "8|4|2|1"
15
C:\>set /a 2^10
210
C:\>set /a "2^10"
8
C:\>set /a "2<<10"
2048
C:\>set /a "1024>>4"
64
C:\>set /a "100%9"
1
C:\>set /a A=2,A*=2,A+=6,A<<=1
<< の使い方が誤っています。

C:\>set /a A=2,A*=2,A+=6,"A<<=1"
20

端数が出たら切り捨てられているようだ。

まあまあいろいろ計算できる。環境変数に代入もできる。

C:\>help set
cmd.exe 環境変数を表示、設定、または削除します。
(中略)
SET コマンドには、2 つの新しいスイッチが追加されています:

    SET /A 式
    SET /P 変数=[プロンプト文字列]

/A スイッチは、等号の右側の文字列が、評価する数式であることを
指定します。式の評価はごく単純で、次の操作がサポートされます。
操作は、優先順位の高い順に示されています:

    ()                  - グループ化
    ! ~ -               - 単項演算子
    * / %              - 算術演算子
    + -                 - 算術演算子
    << >>               - 論理シフト
    &                    - ビット演算子 AND
    ^                   - ビット演算子排他的 OR
    |                   - ビット演算子 OR
    = *= /= %= += -=   - 代入
      &= ^= |= <<= >>=
    ,                   - 式の区切り記号

論理演算子またはモジュール演算子を使う場合は、式文字列を
引用符で囲む必要があります。式内の数値以外の文字列は環境変数文字列として
処理され、使用される前に数値に変換されます。
指定された環境変数名が現在の環境で定義されていない場合は、
値として 0 が使用されます。
これにより、いくつもの % 記号を入力して値を取得しないでも、
環境変数の値を算術演算に使うことができます。
コマンド スクリプト外でコマンド ラインから SET /A を実行すると、
式の最終的な値が表示されます。
割り当て演算子を使うには、割り当て演算子
の左側に環境変数名が必要です。
数値は 10 進数ですが、プレフィックスとして 0x 
を付けると 16 進数、0 を付けると 8 進数になります。従って、0x12 は 18、
あるいは 022 と同じです。
8 進表記を使う場合は、注意してください。08 や 
09 は、8 と 9 が有効な 8 進数ではないため、
有効な数値ではありません。
(以下略)

関連するメモ

コメント