2016-10-29 16 views
-1

私は、ジョークやトリックのための方法を学び、楽しいファイルを作成するためのプログラムです。 for-doステートメントを使わずに、30秒間などの一定時間、バッチファイル内のラベルを実行するバッチファイルを作成しようとしています。私が今までに持っていることは以下に示されており、小さなテストに縮小されていますが、for-doステートメントを使用しています。バッチファイルのラベルが30秒間実行されています

@ echo off 

for /l %%a in (1,1,10) do (
    call :matrix) 

echo Thanks for using the MATRIX 
pause 

:matrix 
echo %random%%random% 
+0

ヒント:[タイムアウト](http://ss64.com/nt/timeout.html) – DavidPostill

答えて

0

これは単にtimeout 30を行うこと、第二cmdプロセス(最小)を開始します。存在はループを繰り返す信号です。

@echo off 
start /min "MyTimer" timeout 30 
:loop 
echo %random%%random% 
tasklist /fi "windowtitle eq MyTimer" | find "Console" >nul && goto :loop 

悲しいことに、tasklistは便利errorlevelsを与えるものではありませんので、私たちはfindを使用する必要があります。

注:デバッグの目的で、startスイッチ/minを削除することをお勧めします。

0

timeoutコマンドを使用すると、for-doステートメントを使用せずに30秒のような時間を設定できます。あなたは、カウント行われたメッセージを表示したくない場合は

@ echo off 

for /l %%a in (1,1,10) do (
    call :matrix) 

echo Thanks for using the MATRIX 
timeout 30 

:matrix 
echo %random%%random% 

は、使用することができますtimeout 30 >nul

関連する問題