2017-11-28 4 views
0

プログラムをバッチで作成しようとしています。そのプログラムの一部である の部分を入力すると、ユーザーは1から5の間の数字を入力する必要があります。 しかし、何も入力しなければ、プログラムはその変数の古い値をとります再びここで (プログラムがループ上にある)を0には、プログラムのその部分の例である: PS:ユーザーが単に押すと、この場合、iは0に手動で設定していますので、ユーザーが新しい変数を与えないと、古い変数の値を削除する方法

@echo off 
goto bla 
:bla 
set /p a="a: " 
if "%a%"=="" (
    goto bla 
) 
echo a= %a% 
set /p b="b: " 
if "%b%"=="0" (
    goto bla 
) 
pause 

答えて

1

ループと入力すると、変数は変更されません。

setに変数が空の場合が最初に入力されてからset/pを実行すると、その条件を検出できます。

set "var=37" 
set /p "var=promptstring [%var%]" 
if not defined var echo nothing entered 
echo %var% 

は(プロンプトにデフォルト(37)を示している)

set "var=" 
set /p "var=promptstring " 
if not defined var echo nothing entered 

これはデフォルト値を適用するために使用することができます

関連する問題