С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 4
1

Как сохранить значение в конфиге и потом его вызвать

14.02.2024, 18:11. Показов 820. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте!
сейчас дабы было легче понять что я хочу, написал следующий код на batch'e.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
@echo off
chcp 65001
title 12345
 
REM Проверяем, существует ли файл confpen.txt
if not exist confpen.txt (
    REM Если нет, создаем его с пустым значением LANG
    echo LANG= > confpen.txt
)
 
REM Читаем значение LANG из файла confpen.txt
for /f "delims=" %%a in (confpen.txt) do set "%%a"
 
REM Проверяем, был ли уже выбран язык
    if "%LANG%"=="russ" (
        goto :russ
    ) else if "%LANG%"=="eng" (
        goto :eng
    ) else if "%LANG%"=="china" (
        goto :china
    )
) else (
    call :cl
)
 
:cl
cls
echo 1 - русский
echo 2 - английский
echo 3 - китайский
set /p var=Ввод текста:
REM Сохраняем выбранный язык в файл confpen.txt
if "%var%"=="1" (
    echo LANG=russ > confpen.txt
    set LANG=russ
    goto russ
) else if "%var%"=="2" (
    echo LANG=eng > confpen.txt
    set LANG=eng
    goto eng
) else if "%var%"=="3" (
    echo LANG=china > confpen.txt
    set LANG=china
    goto china
) else (
    echo Некорректный ввод!
    pause
    goto :cl
)
exit /b
 
:russ
cls
echo русский
pause
exit
 
:eng
cls
echo english
pause
exit
 
:china
cls
echo китайский
pause
exit
схема такова. пользователь запускает файл, ему высвечивается менюшка выбора языка. он выбирает язык, значение должно сохранится в confpen.txt . после выбора языка, например английского , его перебасывает на :eng . на этой стадии он закрывает файл и решает открыть снова. но ему снова приходится выьирать язык, хотя он это уже сделал и значение в конфиге сохранено.. в общем комментарии есть, что я сделал не так? помогите пожалуйста, заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2024, 18:11
Ответы с готовыми решениями:

Как сделать этот код в статическом методе и потом его вызвать?
private readonly string _dateLog = DateTime.Now.ToString("dd MMMM yyyy | HH:mm:ss"); ...

Как одномерный массив превратить в двумерный и вызвать потом его в новую функцию?
Pазработать функцию, которая на входе принимает одномерный массив. Одномерный массив размером M * N...

Как сохранить форму в dll и потом вызвать её из проэкта к которому подключена эта dll?
Как сохранить форму в dll и потом вызвать её из проэкта к которому подключена эта dll?

Как сохранить файл excel а потом его открыть в web forms?
public static void CreateXlsReport(Page page, XtraReport report, string reportName) { ...

Как сделать в программе скриншот рабочего стола и потом сохранить его в файл
Всем доброго всремени суток. Как сделать в программе скриншот рабочего стола и потом сохранить его...

8
bat-пропагандист
968 / 171 / 73
Регистрация: 07.12.2022
Сообщений: 431
Записей в блоге: 12
14.02.2024, 18:47 2
Цитата Сообщение от fantazero Посмотреть сообщение
REM Читаем значение LANG из файла confpen.txt
for /f "delims=" %%a in (confpen.txt) do set "%%a"
пробуйте:
Windows Batch file
1
for /f "delims== tokens=1,*" %%a in (confpen.txt) do set "%%a=%%b"
P.S. код бы не помешало переписать, такое количество goto вызывает глазное кровотечение.
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 4
14.02.2024, 18:54  [ТС] 3
мм не помогло
0
bat-пропагандист
968 / 171 / 73
Регистрация: 07.12.2022
Сообщений: 431
Записей в блоге: 12
14.02.2024, 19:06 4
а так?
Windows Batch file
1
for /f "delims== tokens=1,*" %%a in (confpen.txt) do set "%%~a=%%~b"
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 4
14.02.2024, 19:37  [ТС] 5
неа..
0
Заблокирован
14.02.2024, 20:33 6
во1: for /f "tokens=1* delims==" %%a in (confpen.txt) do set LANG=%%b
во2: set LANG=%LANG: =% --тут пробелы удаляем
и только потом
REM Проверяем, был ли уже выбран язык
if "%LANG%"=="russ" (
bla-bla-bla

это что касается данного момента, но в целом- мрак
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 4
15.02.2024, 00:21  [ТС] 7
почему же мрак
0
bat-пропагандист
968 / 171 / 73
Регистрация: 07.12.2022
Сообщений: 431
Записей в блоге: 12
15.02.2024, 01:35 8
fantazero, потому, что код написан откровенно плохо, и неизвестно, сколько багов в нем еще есть, т.к. читать это невозможно. Я бы вам посоветовал убрать goto там, где можно обойтись без него.

кстати, конструкция
Windows Batch file
1
echo data > file.txt
приведет к тому, что в файл будет записано "data " (с концевым пробелом), а не "data", как кажется на первый взгляд. Вместо написания костылей лучше замените все такие места на:
Windows Batch file
1
echo data> file.txt
то есть, к примеру, ваша конструкция
Цитата Сообщение от fantazero Посмотреть сообщение
echo LANG=russ > confpen.txt
должна выглядеть так:
Windows Batch file
1
echo LANG=russ> confpen.txt
0
6296 / 2137 / 337
Регистрация: 10.12.2013
Сообщений: 7,370
15.02.2024, 14:43 9
опять какой-то детский сад.

fantazero,
оформляешь функцию
WRITE-CONFIG

Например для конфигуриривания переменных с шокирующими именами X, Y, Z

выглядит она так:
WRITE-CONFIG.BAT
Windows Batch file
1
2
3
@ ECHO @ SET x=%1 >  READ-CONFIG.BAT
@ ECHO @ SET y=%2 >> READ-CONFIG.BAT
@ ECHO @ SET z=%3 >> READ-CONFIG.BAT
результатом работы функции WRITE-CONFIG.BAT является генерация функции READ-CONFIG.BAT

всё.
можно пользоваться.

тест для проверки ниже

TEST.BAT

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@ ECHO ИНИЦИАЛИЗАЦИЯ(ИЛИ ЗАПИСЬ) КОНФИГУРАЦИИ ЗНАЧЕНИЯМИ 10 20 0 
@ CALL WRITE-CONFIG 10 20 0
 
@ SET x=100000
@ SET y=20000
@ SET z=-9000
 
@ ECHO Текущие значения переменных X,Y,Z до чтения конфигурации
@ ECHO %x% %y% %z%
@ ECHO Чтение конфигурационного файла ..
@ ECHO Значения X,Y,Z до после чтения конфигурации
 
@ CALL READ-CONFIG
 
@ ECHO %x% %y% %z%
0
15.02.2024, 14:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2024, 14:43
Помогаю со студенческими работами здесь

Как сохранить содержимое буфера, изменить его, а потом вернуть всё обратно?
Собственно вопрос: как сохранить содержимое буфера, выполнить некоторые действия (используя буфер),...

Как получить дамп памяти программы, чтоб потом можно было его сохранить и проанализировать?
Ну тут собственно есть нюансы: 1. Как собственно получить сам дамп. То есть это скорее всего...

Как сохранить svg графику созданную в HTML5 в файл, а потом обратно отдать его пользователю для загрузки
Здравствуйте друзья. С Гугла и Яндекса опять к вам. Имеется вот такой код отправленный на сервер....

Возвращаю значение в дабл но как потом использовать его?
Программа парсинга курса валют. Использую html agility pack. Вот я в конце вернул значение в...

Сохранить массив в файл а потом считать его из файла
#include <iostream> using namespace std; int main() { setlocale (0,""); const int str =...

Сохранить сложный объект в файл и потом загрузить его
Приветствую всех. Имеется примерно такой код: class Array { ............ double* Cols;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru