2013-07-20 317 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