質問: バッチファイルでスリープする方法 コマンドと次のコマンドの間のwindowsバッチファイルで実行を一時停止する方法は?
回答: 免責事項:これは「理想的な」解決策ではないので、ping...可能であれば、確かにtimeoutを使用してください。しかし、コメントで述べたように、それは常にオプションではありません(たとえば、非インタラクティブモード)。その後、ping "kludge"は非常にシンプルであるため、おそらく次善の策であることに同意します。そうは言っても、別のオプションを提供します...埋め込みvbスクリプト。このソリューションの基礎には、これを超えるあらゆる種類のアプリケーションがあります。多くの場合、vbsはバッチでは実行できないことを実行できます。または、少なくとも非常に簡単に実行できます。ここで説明する手法を使用すると、2つを組み合わせることができます(「シームレス」ではなく、「機能的に」...)。一時スクリプトを作成し、実行してから削除するための1つのライナーがあります。スクリプトはスリープを行います(この例では3秒間)。echo wscript.sleep 3000 > %temp%\sleep.vbs & cscript %temp%\sleep.vbs %sleepms% //b & del %temp%\sleep.vbs これは基本的に同じことですが、少し異なって書かれています:set sleepms=3000 & set sleepvbs=%temp%\sleep.vbs & echo wscript.sleep wscript.arguments(0) > %sleepvbs% & cscript %sleepvbs% %sleepms% //b & del %sleepvbs% そして最後に、pingと同様に、cscript自体にもタイムアウトオプションがあります。したがって、スクリプトに無限ループを入力した場合、インタプリタに継続時間を強制させることができます。これは「ビジー」な操作であり、cpuを消費するため、wscript.sleepプロシージャを使用できる場合はお勧めしませんが、完全を期すために概念的なオプションとして提示します。set sleepsec=3 & set sleepvbs=%temp%\sleep.vbs & echo while true > %sleepvbs% & echo wend >> %sleepvbs% & cscript %sleepvbs% //b //t:%sleepsec% & del %sleepvbs%