このページの本文へ

前へ 1 2 次へ

Windows Info 第308回

PowerShellでWindowsが起動してからの時間を計算する

2022年01月02日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

PowerShellは、時間や日付を扱うことができるため、時刻や時間の計算を簡単にできる。Windows付属の電卓アプリは、日付の計算は可能だが、時刻を含めることができない。PowerShellならインストールも不要だ

 新年あけましておめでとうございます。1年の始まりだからというわけもないが、今回は、時刻と時間の計算をPowerShellでする方法を解説する。

 Windows 10では、Windows Updateや機能の追加などを除くと、再起動する機会が少なくなった。とはいえ、長期間起動し続けているといまだに不具合が起こりやすい。筆者も1~2週間に1回程度は、意識的に再起動するようにしているが、忘れてしまうこともある。

 こうしたとき、再起動してからの時間を表示できると便利だ。Linux/Unixには、システムの起動日時とこれまでの時間を表示するuptimeというコマンドがある。残念ながら、Windowsにはこのコマンドはない。

Windowsの稼働時間を求める方法は大きく2つある

 Windowsが再起動してからこれまでの時間を求める方法は大きく2つある。1つは、記録された再起動時刻を使って、現在時刻から求める方法だ。もう1つは、Windows時間と呼ばれるシステムタイマーによる計測時間を使う方法だ。前者は計算が必要だが、後者は不要である。

 PowerShellでこのWindows時間を得るには、“[Environment]::TickCount”を使う。返ってくるのは、ミリ秒単位のWindowsが起動してからの経過時間を表す整数値である。

 “[Environment]::TickCount”は、PowerShellのコマンドではなく、.NET Frameworkのオブジェクトである。正確には“[System.Environment]::TickCount”で、オブジェクトのクラス名が“System.Environment”、“TickCount”はプロパティ名だ。

●Environment.TickCount プロパティ
 https://docs.microsoft.com/ja-jp/dotnet/api/system.environment.tickcount?view=netframework-4.8

 このようにPowerShellのメリットの1つは、.NET Frameworkのオブジェクトに簡単にアクセスできるところだろう。PowerShellでは、クラス名先頭の“System.”部分を省略できる。

TimeSpanで人間にもわかりやすい形で時間を表す

 とはいえ、ミリ秒単位の時間では通常の人間にはどれくらいの時間が経ったのか想像がつきにくい。得られる値は単なる整数値だが、これを.NET Frameworkの「TimeSpan」(時間差や時間間隔に対応するオブジェクト)に変換することで、書式などを付けて扱えるようになる。それにはキャストを使う。

Windowsが稼働している時間は、“[Environment]::TickCount”で求めることができる。これを時間を表すTimeSpanオブジェクトにキャストすれば、書式設定などもできるようになる

 具体的には、

[TimeSpan][Int64](1E4*[Environment]::TickCount)

というように先頭に“[TimeSpan][int64]”を付ける。“[TimeSpan]”は、左側をTimeSpanに見なすというキャスト、同様に“[Int64]”は、左側を64bitの整数値に見なすというもの。

 キャストとはラベルの付け替えだ。「お前はTimeSpanだ。TimeSpanになるのだ」といえばInt64はTimeSpanになる。ただしキャストとデータには一定の関係が必要。たとえて言えば、伊達直人はタイガーマスクにキャストできるが、ミスターXはタイガーマスクにキャストできない。

 なぜTickCountを10000倍(1E4は1×10の4乗の意味)しているのかというと、TimeSpanのTickは、100ナノ秒(1ナノ秒は10のマイナス9乗秒。100ナノ秒は10のマイナス7乗)単位になっている。TickCountは1ミリ秒(1ミリ秒は10のマイナス3乗秒)単位であり、これを100ナノ秒単位に変換するには10の4乗(=10000)を乗ずる。もし計算したい値が秒単位ならば10000000(1E7)倍する。

 TimeSpanオブジェクトに関しては、Microsoftのサイトに説明がある。

●TimeSpan
 https://docs.microsoft.com/ja-jp/dotnet/api/system.timespan?view=netframework-4.8

 TimeSpanオブジェクトになると、日付や時間関連の書式指定が可能になる。具体的には、

([TimeSpan][int64](1E4*[Environment]::TickCount)).ToString('c')

 とすると、日、時、分、秒、ミリ秒で区切った表示になる。細かく設定したければ、

([TimeSpan][int64](1E4*[Environment]::TickCount)).ToString('dd\日\ hh\時\間\ mm\分\ s\秒')

などとすることも可能。注意する必要があるのは、ToStringを使って書式設定する場合、書式設定文字以外は、すべて“\”を使ってエスケープしておく必要がある点だ。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,253
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥937
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥841
9
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
10
【Amazon.co.jp限定】 ロジクール ワイヤレスマウス 無線 マウス M185CG 小型 電池寿命最大12ケ月 M185 グレー 国内正規品
【Amazon.co.jp限定】 ロジクール ワイヤレスマウス 無線 マウス M185CG 小型 電池寿命最大12ケ月 M185 グレー 国内正規品
¥999

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン