Windows10のコマンドプロンプトやPowerShellで処理を無限ループさせる方法

Windows10のコマンドプロンプトやPowerShellで処理を無限ループさせる方法

Windows10でコマンドプロンプトやPowerShellを利用して処理を実行させていると、テストなどの目的で、特定の処理を無限ループさせたいときがあります。

そこでここでは、Windows10のコマンドプロンプトやPowerShellで、特定の処理を無限ループさせる方法を紹介します。

Windows10のコマンドプロンプトやPowerShellでコマンドを1行で連続実行する方法
Windows環境でコマンドプロンプトやPowerShellを利用してコマンドを実行するときに、複数のコマンドを1行で続けて(ワンライナ...

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows10 Pro 64bit21H1

コマンドプロンプトの場合

コマンドプロンプトで処理を無限ループさせたいときは、for文を使って以下のように記述します。

> for /l %i in () do (実行したい処理)

実行したいコマンドが複数ある時は「&」で区切って「コマンド1 & コマンド2」と入力することで連続実行することができます。

たとえば、5秒ごとにpingコマンドを実行する処理を無限ループさせたいときは、次のように実行します。

> for /l %i in () do (timeout 5 & ping 192.168.0.1)

バッチファイルの場合

バッチファイルで処理を無限ループさせたいときは、上のfor分を使った方法以外に、以下のようにラベルとgoto文を使ってループさせる方法があります。

たとえば、5秒ごとにpingコマンドを実行する処理を無限ループさせたいときは、次のように記述します。

:loop
rem ここに実行したい処理を記述します。
timeout 5
ping 192.168.0.1
goto loop

PowerShellの場合

PowerShellで処理を無限ループさせたいときは、while文またはfor文を使って以下のように記述します。

PS> while ($true) {実行したい処理}
PS> for (;;) {実行したい処理}

実行したいコマンドが複数ある時は「;」で区切って「コマンド1 ; コマンド2」と入力することで連続実行することができます。

たとえば、5秒ごとにpingコマンドを実行する処理を無限ループさせたいときは、次のように実行します。

PS> while ($true) {Start-Sleep -Seconds 5 ; ping 192.168.0.1}

PowerShellスクリプトの場合

PowerShellスクリプトで処理を無限ループさせたいときも、while文またはfor分を使った方法で記述できます。

たとえば、5秒ごとにpingコマンドを実行する処理をfor文を使って無限ループさせたいときは、次のように記述します。

for (;;) {
#ここに実行したい処理を記述します。
Start-Sleep -Seconds 5
ping 192.168.0.1
}

あとがき

なお、ここで紹介したいずれの処理も、実行を中止するときは「Ctrl+C」キーを押します。

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ