Пакетный файл, который проверяет введенный текст с текстом из .txt файла - PullRequest
2 голосов
/ 24 мая 2009

Мне нравится иметь командный файл, который проверяет, является ли введенный текст в .txt файле одинаковым.

Примерно так:

@echo off
Set pass=
set /p pass=Enter your password:
......
......

Файл .txt - это pass.txt, и он должен выглядеть примерно так:

p2342ddd3

Итак, я хочу, чтобы пользователь вводил текст из файла pass.txt (не смотря на это явно) и что пакетный файл проверяет, совпадает ли он с текстом из прохода. текстовый файл.

Ответы [ 2 ]

2 голосов
/ 27 мая 2009

Для этого потребуется сочетание цикла for и простого, если:

@echo off
:begin
set pass=
set /p pass=Enter your password: 
if {%pass%}=={} goto :begin
set authenticated=
for /f "tokens=*" %%a in (pass.txt) do (
    if {%%a}=={%pass%} set authenticated=true
)

if not defined authenticated (echo Invalid password & goto :begin)
exit /b 0
0 голосов
/ 22 августа 2009

Вы можете использовать встроенную команду FINDSTR , чтобы соответствовать пароль в файле паролей:

@echo off
set pass=
set /p pass=Enter your password:

findstr /B /E /M %pass% pass.txt > nul
If %ERRORLEVEL% EQU 0 echo Password matched!

Опции / B и / E предназначены для обеспечения того, чтобы весь пароль совпадает и частичное совпадение не происходит. Например. 42 является содержится в p2342ddd3, но не должно приводить к совпадению.

Опции / M и перенаправление на нуль, чтобы обеспечить пароль не просачивается.

FINDSTR устанавливает переменную ERRORLEVEL в 0, если элемент найден (совпадение пароля) и до значения больше 0, если элемент не найден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...