Показать полную графическую версию : [решено] Запись и чтение конфигурации из файла
alexusankov
28-12-2010, 13:07
Парни, кто знает выручите. Возникла ситуация - нужно сделать следующее. Имеется bat, при запуске пользователь видит табличку, где определенному выбору присвоена цифра. Далее он вводит цифру, и в одном txt файле вписывается новая строка.
Но беда в том, иногда приходится добавлять новую строчку, при этом приходится вписывать новую строчку в таблицу батника, + новую переменную, значение которой буте пихаться в txt. Скажите возможно ли как либо хранить данные вида
имя=значение
в отдельном файле. При запуске, вытаскивать "имя", вставлять в табличку. При определенном выборе пользователя, искать "имя" в этом файле, выдирать его "значение" и вписывать куда мне нужно?
Или хотя бы подскажите как мне запихать в переменную строчку из txt?
alexusankov
28-12-2010, 13:39
Если быть более точным, сейчас покажу сам код - и то что нужно на самом деле..
@echo off
color F
chcp 1251 >nul
title Select REalm
echo ---------------------------------
echo Здравствуйте!
echo Пожалуйста, выберите рилм!
echo ---------------------------------
echo 1 - Wowcircle.com rait - x15
echo 2 - Wowcircle.com rait - x30
:start
color F
set /p choice=Ваш выбор:
if %choice% LSS 3 (
if %choice%==1 (
echo>realmlist.wtf set realmlist logon.wowcircle.com
)
if %choice%==2 (
echo>realmlist.wtf set realmlist logon2.wowcircle.com
)
if %choice%==4 (
set rout=%r4%
echo>realmlist.wtf set realmlist logon.wow.san.ru
)
goto end
) else (
goto start
)
:end
cls
pause
Или хотя бы подскажите как мне запихать в переменную строчку из txt? »
Так ?
@Echo Off
For /F "tokens=1* delims==" %%i In (var.txt) Do Set %%i=%%j
:: проверка считанных переменных
Echo %%Ver%% %Ver%
Echo %%Build%% %Build%
Echo %%Day%% %Day%
Pause>Nul
Файл var.txt :
Ver=9.0.4
Build=1234
Day=11.12.2010
Все остальное в задании слишком сумбурно и анализу не поддается... :dont-know
alexusankov
28-12-2010, 13:42
Так вот, при добавлении новой строчки, приходится добавлять новый пункт, примерно в строку 9-10, и так же приходится дописывать в блок if новую строчку типа echo>realmlist.wtf set realmlist logon.wow.san.ru
..
Вот нужно замутить чтобы, программа читала файл типа
Wowcircle.com rait - x15=set realmlist logon.wowcircle.com
значение ДО равно пихала в заголовок, а Значание ПОСЛЕ равно пихала в переменную. Ну примерно так. Или хотя бы подскажите как мне строку из файла запихать в переменную??
Сек, сейчас осмыслю код
Я сейчас пример кода своего привел, можно как либо сделать чтоб было чтение из файла?
Или просто код для чтения 1й строчки из файла?
alexusankov
28-12-2010, 14:04
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Еще раз , попытаюсь разложить. Кто может поясните на примере кода
echo 1 - Wowcircle.com rait - x15
echo 2 - Wowcircle.com rait - x30
sеt /p choice=Ваш выбор:
if %choice% LSS 3 (
if %choice%==1 echo>realmlist.wtf set realmlist logon.wowcircle.com
if %choice%==2 echo>realmlist.wtf set realmlist logon2.wowcircle.com
pause
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Вот это непосредственно код. Я пытаюсь добиться следующего. Нужно можернизировать код, чтобы:
Данные, которые сейчас в первой строке, соответствуют строкам которые я вписываю в файл, см. 5 и 6 строчки.
Беда в том, что постоянно добавляю в файл новые пункты. Хотелось бы, чтобы каким либо образом, программа вытаскивала из txt файла сами заголовки, и после того как юзер выбрал пункт, из йфайла вытаскивалось значение и вписывалось в нужный мне файлик
Gora, щас я на основании твоего кода набросаю свой, глянешь.. Я с циклами пока не особо дружу
alexusankov
28-12-2010, 14:41
,,,,,,,,,,,,,,,,,,,
Попробуйте так:@echo off
SetLocal enabledelayedexpansion
color F
chcp 1251 >nul
title Select REalm
echo ---------------------------------
echo Здравствуйте^^!
echo Пожалуйста, выберите рилм^^!
echo ---------------------------------
Set cnt=0
For /F "tokens=1* delims=," %%i In (var.txt) Do (
Set /a cnt+=1
Set l!cnt!=%%j
echo !cnt! - %%i
)
:_start
set /p choice=Ваш выбор:
if %choice% GTR %cnt% goto :_start
For /L %%i In (1,1,%cnt%) DO If %choice%==%%i Echo !l%%i!>realmlist.wtf
cls
chcp 866 >nul
pause
Файл var.txt Wowcircle.com rait - x15,set realmlist logon.wowcircle.com
Wowcircle.com rait - x30,set realmlist logon2.wowcircle.com
Wowcircle.com rait - x45,set realmlist logon.wow.san.ru
echo>realmlist.wtf set realmlist logon.wowcircle.com »
Что за строка записывается у Вас в файл realmlist.wtf я не понял, но сделал как у Вас.
alexusankov
28-12-2010, 15:04
Спасибо тебе огромное, все работает!! Сам бы такой код писал дня четыре , не меньше, т.к. первый мой bat.. В принципе все работает идеально, дальше дописываю сам. По вашему коду только 1 вопрос:
1. Сейчас буду дописывать вторую часть батника, ради которой все это и затевалось, чтобы непосредственно из него добавлять строки в var.txt. Если вас не затруднит, подскажите какой командой, можно дописать в КОНЕЦ файлика?
Заранее благодарен
какой командой, можно дописать в КОНЕЦ файлика? »
Echo строка текста>>var.txt
alexusankov
28-12-2010, 15:14
Все, спасибо тебе огромное добрый человек)
В принципе вопросов больше нет, правда есть нюанс небольшой, но думаю разберусь сейчас. В строке ввода которую предлагают юзеру, у меня раньше если число не соответствовало нужному, его перекидывало в настройки через goto. В этом коде пока не разобрался еще
Все, разобрался! Автору еще раз огромная благодарность!!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.