Top.Mail.Ru
Ответы

Проблема Бат файл

Мне для организации моей нужно сделать так, чтобы человек вводил код пример: AAA00000 и ему выдавало определенное значение. Я понимаю что делать через переменную, но не понимаю с if.

По дате
По рейтингу
Аватар пользователя
Ученик

Мне для организации моей

Какой бюджет под эту задачу? Лол.

Т.е. я правильно понял, что у тебя есть некоторое количество пар, код+значение, при вводе первого, нужно отдавать второе? Я конечно не знаю чем там твоя организация занимается, но рекомендую использовать другие средства, а не bat файлы.

Предлагаю пары код+значение вытащить в отдельный файл и организовать таким способом:

1234
 AAA00000 44567778 
AAA00001 44567779 
AAA00002 44567780 
AAA00003 44567781 


Реализация через findstr:

@echo off

::файл с кодами
set file=hackcodes.txt

::запрашиваем код
:get_code
set /P code="CODE: "

::проверяем наличие ввода
call :check_var code

::проходим по файлу
for /f "tokens=1,2" %%a in ('findstr /x /r /c:"\<%code% ".* %file%') do set result=%%b

::проверяем наличие кода иначе назад
call :check_var result

::выводим результат
echo %result%

echo.
pause
exit

:check_var
if not defined %1 (
echo INVALID CODE
goto get_code
)
exit /b

Извратский вариант:

@echo off

::setlocal enabledelayedexpansion чтобы использовать переменные в переменных
setlocal enabledelayedexpansion

::файл с кодами
set file=hackcodes.txt

::проходим по файлу
for /f "tokens=1,2" %%a in (%file%) do set "%%a=%%b"

::запрашиваем код
:get_code
set /P code="CODE: "

::проверяем наличие кода и ввода иначе назад
call :check_var code
call :check_var %code%

::выводим результат
echo !%code%!
echo.
pause
exit

:check_var
if not defined %1 (
echo INVALID CODE
goto get_code
)
exit /b


Мейл не хочет код для батника публиковать в секции кода, поэтому вот - https://pastebin.com/rMkX0mGq и https://pastebin.com/KxgLFUAZ

Аватар пользователя
Ученик

Что за другие средства?

Аватар пользователя
Оракул

Правильно заданный вопрос - половина ответа

Аватар пользователя
Ученик
123
 @echo off 
set /p "code=Enter code: " 
if %code%==AAA00000 echo anythink... 
Аватар пользователя
Ученик

@echo off
set /p "code=Enter code: "
if %code%==AAA00000 echo anythink...

Аватар пользователя
Гений

Проблем нет, если сформулировать задачу без лишнего словарного мусора типа: 'для организации моей нужно сделать', 'Я понимаю что делать через переменную', 'чтобы человек вводил код' ...



Видео по теме