2013-07-20 206 views
2

我在创建一个密码提示,它将用户输入信息与文本文件中的信息进行比较(密码保存在.txt文件中)。从文本文件中读取变量

我试图通过命令提示符和本网站提供给我的信息,但我不能让它工作,可能是因为我没有足够的经验,因为我比较新先进的批量编码。

这是我想出到目前为止,文本文件的名称是Q47.txt和它只是单词“你好”,直到我能得到这个工作:

@echo off 
:a 
cls 
SetLocal EnableDelayedExpansion 
set content= 
for /F "delims=" %%i in (Q47.txt) do set content=!content! %%i 
echo %content% 
EndLocal 

echo Enter password to continue: 
set /p "VAR=>" 
    if "%VAR%" == "%content%" ( 
    goto begin 
    ) 
echo Incorrect, please try again. 
pause >nul 
goto a  


:begin 
cls 
echo Welcome 
pause >nul  

请你能告诉我我哪里出了问题。

我也想知道如何消除变量前的空间。

回答

3

你可以试试这个:

@ECHO OFF &SETLOCAL 
:a 
set "content=" 
for /F "tokens=*" %%i in (Q47.txt) do set "content=%%i" 
echo "%content%" 

echo Enter password to continue: 
set /p "VAR=>" 
if "%VAR%" == "%content%" goto begin 
echo Incorrect, please try again. 
pause >nul 
goto a  

:begin 
cls 
echo Welcome 
pause >nul  
+0

谢谢!这真棒,像魅力一样工作!非常感激 – Chips147

2

文件读入到一个变量是这样的:

set /p content=<"C:\path\to\Q47.txt" 
+0

谢谢!这可以帮助我减少代码! – Chips147