[登録されているタグ]

[記事公開日]2025/12/18

PowerShellで一時停止する|Start-Sleepの使い方

📝 はじめに

PowerShellでスクリプトを実行していて、
「次の処理まで少し待ちたい」
「連続処理の間に間隔を入れたい」
と感じたことはありませんか?

たとえば、ファイル生成を待ってから次の処理をしたい場合や、
繰り返し処理で負荷をかけすぎないよう間隔を空けたい場合など、
処理を一時的に止めたい場面は意外と多くあります。
そんなときに使うのが Start-Sleep です。

こんな場面で便利

  • 処理と処理の間に待ち時間を入れたい
  • ループ処理で実行間隔を調整したい
  • 外部処理やファイル生成を待ちたい

✅ このコマンドでできること(要点)

  • 指定した時間だけ処理を一時停止できる
  • 秒・ミリ秒単位で待機時間を指定できる
  • ループや自動化処理と組み合わせやすい
  • コードを分かりやすく書ける

✅ Start-Sleep でできること

Start-Sleep は、
指定した時間だけ PowerShell の処理を停止(待機)させるためのコマンドです。

処理を完全に終了するわけではなく、
一定時間待ってから次の行へ進む動きをします。
バッチ処理や自動化スクリプトでは定番の考え方です。

似た用途としては「時間を空けてから次の処理を実行する」という考え方になります。

🧩 基本構文

Start-Sleep -Seconds 5

上記の場合、5秒間処理が停止してから次の行へ進みます。
秒指定が最もよく使われます。

▶ 基本的な使い方(まずこれだけ)

🔹 秒単位で一時停止する

Write-Output "開始"
Start-Sleep -Seconds 3
Write-Output "再開"

「開始」が表示されたあと、3秒待ってから「再開」が表示されます。
この順番で表示されていれば問題ありません。

🔹 ミリ秒単位で待機する

Start-Sleep -Milliseconds 500

0.5秒だけ待機します。
短い間隔で制御したい場合に使えます。
エラーが出なければ正常に実行できています。

🛠 よく使われる指定例

🔹 変数で待機時間を指定する

$wait = 10
Start-Sleep -Seconds $wait

待ち時間を変数にしておくと、後から調整しやすくなります。

🔹 ループ処理と組み合わせる

1..3 | ForEach-Object {
    Write-Output "処理中..."
    Start-Sleep -Seconds 2
}

各処理の間に2秒の間隔が入ります。
処理が一定間隔で繰り返されていればOKです。

💼 実務でよく使う使用例(応用)

🔹 ファイル生成を待ってから処理する

Start-Sleep -Seconds 5
Get-Item "C:\temp\result.txt"

🔹 定期処理の簡易待機

while ($true) {
    Get-Date
    Start-Sleep -Seconds 60
}
組み合わせ例

  • Start-Process 後の待機に使う
  • Test-Path と併用して存在確認まで待つ
  • Get-Date と組み合わせてログを取る

🧩 よくある勘違い・つまずきポイント

  • 指定時間中は完全に処理が止まる
  • 非同期処理にはならない
  • 分単位の指定は直接できない
  • 長時間の待機には不向きな場合がある
  • スクリプト全体が待機状態になる

🔄 cmdとの違いについて

cmd では timeout /t
ping -n を使って待機処理を行います。

PowerShell の Start-Sleep
秒・ミリ秒を明示的に指定でき、読みやすい点が特徴です。

⚠ エラー・うまく動かないときの確認ポイント

  • 待機時間の単位(Seconds / Milliseconds)を間違えていないか
  • 負の値や想定外の値を指定していないか
  • 長時間待機で止まっているように見えていないか
  • 無限ループ内で使っていないか

🧠 注意点

Start-Sleep は単純に待つだけのため、
状態を監視しながら待ちたい場合には向いていません。
必要に応じて条件判定と組み合わせて使うのがおすすめです。

📌 まとめ

  • Start-Sleep は処理を一時停止するための基本コマンド
  • 秒・ミリ秒単位で待機時間を指定できる
  • ループや自動化処理と相性が良い
  • 次は条件待機やループ制御と組み合わせると理解が深まる

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探すこともできます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • 一定時間待って処理したい
  • 処理間隔を調整したい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る