2017-03-06 4 views
0

私はこのようなコードを作成しました。バッチでユーザー入力を参照する方法

set /p code=Color Code: 
color %code% 
cls 
goto top 
:top 
echo Color Code: %code% 

これは、しかし、私はこのコードのビットは、それが動作する方法のために働いている、それのためにランダムなオプションを1つのより多くの機能を追加したい、それに応じて、ウィンドウの色を変更することで動作します。

set /a R=10 + %RANDOM% %% (99 - 10 + 1) 

このコード行は、唯一の問題です。

set /p code=Color Code: 

それはそれは「R」(マイ10-99の間の乱数変数)を区別するためのものです、私は必要なもの (色%のコード%)、ユーザの入力を受け取り、そしてコマンドに与える変数として、 %R%は入力時に表示されます。したがって、ユーザーが "R"を入力すると、ウィンドウはランダムな色に変更されます。

私はIF文を試しましたが、どのように書式を設定するのか分かりませんが、ここで試したことはあります。

set /a R=10 + %RANDOM% %% (99 - 10 + 1) 
set /p code=Color Code: 
if %code%="R" goto bottom 
color %code% 
cls 
goto top 
:top 
echo Color Code: %code% 
goto :eof 
:bottom 
color %R% 
goto top 
+0

あなたは、入力に2つのオプションがあると言っていますか?彼らは0-9とA - Fを使用して2つの文字コードを入力するか、Rをタイプしてランダムな色を生成することができますか? – Squashman

+0

はい、それは正しいです –

+0

あなたのランダムロジックは、文字A〜Fを考慮していません。また、colorコマンドのエラーレベルをテストするロジックもありません。ユーザーまたはランダムが背景と前景色の同じ文字を生成すると、エラーが発生し、色は変更されません。しかし、本質的にあなたの質問に答えるためには、 'code'変数が' R'と等しいかどうかをテストする 'IF'コマンドを使用します。 – Squashman

答えて

0

申し訳ありませんが、いくつかの勉強で、私はこれを見つけました!

変数を使用してIF ELSE文を作成しようとすると、かなり簡単です。

set /a (var)=(variable) 
if "(var)"=="(What you're testing for)" (command) 

したがって、私の場合は正しいコードになります。

set /a R=10 + %RANDOM% %% (99 - 10 + 1) 
set /p code=Color Code: 
if "%code%"=="R" goto bottom 
color %code% 
cls 
goto top 
:top 
echo Color Code: %code% 
exit 
:bottom 
color %R% 
goto top