2016-08-13 19 views
2
@echo off 
:start 
cls 
color e 
echo YOU HAVE WON $1,000,000! WHAT WILL YOU DO? 
echo. 
echo ================= 
echo -Take it (1) 
echo -Leave it (2) 
echo -Double it (3) 
echo ================= 
echo. 
timeout /t 1 >nul 2>&1 
color a 
timeout /t 1 >nul 2>&1 
color b 
timeout /t 1 >nul 2>&1 
color e 
timeout /t 1 >nul 2>&1 
color a 
timeout /t 1 >nul 2>&1 
color b 
timeout /t 1 >nul 2>&1 
color e 
timeout /t 1 >nul 2>&1 
color a 
timeout /t 1 >nul 2>&1 
color b 
timeout /t 1 >nul 2>&1 
color e 
timeout /t 1 >nul 2>&1 
color a 
timeout /t 1 >nul 2>&1 
color b 
timeout /t 1 >nul 2>&1 
color e 
set /p INPUT=Please specify your answer: 
If /i "%INPUT%" == "1" goto 1 
If /i "%INPUT%" == "2" goto 2 
If /i "%INPUT%" == "3" goto 3 

私は上記のコードを持っていますが、実際にはわかりません。だから私は色を繰り返し変更しているのが分かりますが、次のコマンドの途中で色が変わるのが分かります。答えが選ばれるまで私はそれをバックグラウンドで好きにする方法がありますか? (1、2、または3)。別の処理中にバックグラウンドでコマンドを実行していますか?

答えて

2

start /Bをauxスクリプトで使用すると、そのトリックが実行されます。

auxスクリプトは、一時ファイルが存在すると終了します。ラメが、しかし働く。

私のモックアップのメインルーチン(main.batそれを呼び出す)

@echo off 
:start 
cls 
color e 
echo YOU HAVE WON $1,000,000! WHAT WILL YOU DO? 
echo. 
echo ================= 
echo -Take it (1) 
echo -Leave it (2) 
echo -Double it (3) 
echo ================= 
echo. 
start /B %~dp0\color_cycling.bat 
:err 
set /p INPUT=Please specify your answer: 

If /i "%INPUT%" == "1" goto 1 
If /i "%INPUT%" == "2" goto 2 
If /i "%INPUT%" == "3" goto 3 
goto err 

:1 
echo.> %TEMP%\stopcol 
echo take it 
set /p SURE=are you sure? 
pause 
:2 
echo.> %TEMP%\stopcol 
echo leave it 
pause 

確かに1977年からマイcolor_cycling.batルーチン

@echo off 

del %TEMP%\stopcol 2>NUL >NUL 
:lab 
for %%i in (a b e) do (
timeout /t 1 >nul 2>&1 
color %%i 
if exist %TEMP%\stopcol exit 
) 
goto lab 

ニースの効果!

関連する問題