Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Lapotkin Inkodinok Ученик (175), закрыт 2 месяца назад
Мне для организации моей нужно сделать так, чтобы человек вводил код пример: AAA00000 и ему выдавало определенное значение. Я понимаю что делать через переменную, но не понимаю с if.
Лучший ответ
Devil Black Pro Оракул (61158) 3 месяца назад
Мне для организации моей
Какой бюджет под эту задачу? Лол.

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

Предлагаю пары код+значение вытащить в отдельный файл и организовать таким способом:
 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
Lapotkin InkodinokУченик (175) 2 месяца назад
Что за другие средства?
Devil Black Pro Оракул (61158) Lapotkin Inkodinok, C, python, java etc. PHP+MySql, как тебе писали в другом вопросе - тоже вариант. Мой вариант на батнике - это когда кодов, пара сотен или около того. Если встанет вопрос, что кодов нужно будет больше. Число сотрудников увеличится или офисов станет больше. Если придется навесить туда еще функционал, например, нужна будет авторизация. В любом из вышесказанных вариантов, практически наверняка, любая реализация такой программы чисто на батнике - посасёт. Но ты сам просил bat файл и получил bat файл. Лол.
Остальные ответы
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (273462) 3 месяца назад
Проблем нет, если сформулировать задачу без лишнего словарного мусора типа: 'для организации моей нужно сделать', 'Я понимаю что делать через переменную', 'чтобы человек вводил код' ...
Ден Кибкало Ученик (163) 3 месяца назад
 @echo off 
set /p "code=Enter code: "
if %code%==AAA00000 echo anythink...
Ден КибкалоУченик (163) 3 месяца назад
@echo off
set /p "code=Enter code: "
if %code%==AAA00000 echo anythink...
Алекс Куха Высший разум (476081) 3 месяца назад
Правильно заданный вопрос - половина ответа
Похожие вопросы