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"
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"