2016-06-28 3 views
0
REM This is a sample code by me to illustrate my question 

@echo off 
:test 
Echo Welcome %username%! 
set /p T=Enter your text here 
echo %username% : %T% >>C:\Users\%username%\AppData\Local\Temp\xyz.txt 
goto :test 

上記のいずれかを入力しないようにするには、私の質問を説明して助けることができる私がサンプルコードです。BATCH - キースパムに

上記のコードでは、ユーザーがメッセージを入力してEnterキーを押すと、そのメッセージがファイルに書き込まれますが、ユーザーが同じキーを押し続けると「Enter」キーが連続して表示される可能性がありますファイル。これが起こるのを防ぐ方法がありますか?

ありがとうございます!

+4

あなたの質問を理解する可能性のあるコードを表示する必要があります。 – jeb

+0

@Jeb私は質問を説明するのに役立つサンプルコードを追加しました。 –

答えて

1

がちょうどset /pでEnterキーを押すと、変数をそのまま保持します。あなたはもちろん

if defined T echo %username% : %T% ... if not "%T%"=="" echo %username% : %T% ...または

であなたは、空のエントリをログFlorians解答を使用して
echo %username% : %T% ...を交換したくない場合は

@echo off 
:test 
Echo Welcome %username%! 
set "T=" 
set /p T=Enter your text here 
echo %username% : %T% >>C:\Users\%username%\AppData\Local\Temp\xyz.txt 
goto :test 

:だからあなたが前にそれをクリアする必要がありset T=user didn't enter text"

0
if not "%T%"=="" echo %username% : %T% >> xyz.txt 

更新:削除()

+1

'set" T = "' set/P'の前に置く必要があります。そうしないと 'T'は前に一度設定されていれば空になりません。かっこを取り除く!スタンドアローンで動作するかもしれませんが、ステートメントがそれ自身のカッコ内に置かれているとうまくいきません... – aschipfl

+1

あなたの構文は間違っています 'IF NOT( "%T%==" ")'。かっこが比較された文字列の一部になるので、それらを削除してください – jeb

関連する問題