BATCH - 防止输入密钥垃圾邮件

BATCH - Preventing enter key spam

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

以上是我的示例代码,可以帮助说明我的问题。

在上面的代码中,一旦用户输入消息并按下回车键,消息就会写入文件,但用户可能会连续按下 'Enter' 键,这会导致相同的消息将 return 放入文件中。有什么办法可以防止这种情况发生吗?

谢谢!

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

更新:移除 ()

只需在 set /p 处按 ENTER 即可保持变量不变。所以你必须先清除它:

@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

如果您不想记录空条目,请使用 Florians answer 并替换
echo %username% : %T% ...
if not "%T%"=="" echo %username% : %T% ...
if defined T echo %username% : %T% ...

当然你也可以预定义其他的东西,比如set T=user didn't enter text"