Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Найти текст по маске в файле и вставить найденные значения в ini файл

Ответить
Настройки темы
CMD/BAT - [решено] Найти текст по маске в файле и вставить найденные значения в ini файл

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Приветствую, пожалуйста помогите(((
Нужно из файла с таким текстом:
Код: Выделить весь код
Connected display devices:
  [0] \\.\DISPLAY1                  NVIDIA GeForce GTX 1070
      \\.\DISPLAY1\Monitor0           Generic PnP Monitor
          Settings: 2560x1080 32bit @60Hz default

  [1] \\.\DISPLAY2                  NVIDIA GeForce GTX 1070
      \\.\DISPLAY2\Monitor0           Generic PnP Monitor
          Settings: 1920x1080 32bit @60Hz default

  [2] \\.\DISPLAY3                  NVIDIA GeForce GTX 1070
  [3] \\.\DISPLAY4                  NVIDIA GeForce GTX 1070
вытянуть значения разрешения экрана дисплея 1 и сохранить их в ini файл последними строками в виде
HorizontalResolution=2560
VerticalResolution=1080
если с точной нумерацией строк проще можно сохранить в 45-46 строке

Отправлено: 00:25, 09-01-2019

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Anidzuka:
Нужно из файла с таким текстом: »
Упакуйте файл в архив и приложите к сообщению. Чем создаётся этот файл?

Цитата Anidzuka:
сохранить их в ini файл последними строками »
Цитата Anidzuka:
если с точной нумерацией строк проще можно сохранить в 45-46 строке »
Вообще-то, в ini-файле нет понятия номера строки. Есть понятия «раздел», «параметр», «значение параметра».

Насколько принципиальна реализация сего именно в рамках пакетных файлов?

Отправлено: 00:43, 09-01-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt res.txt
(496 байт, 3 просмотров)

файл создает "ChangeScreenResolution" ini файл слегка нестандартный он не имеет разделов вообще, только параметр и значения , в этом большой геморрой....
в прицепе главное что бы работало((

Отправлено: 01:11, 09-01-2019 | #3


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Извиняюсь, если вам не трудно можно еще как то сделать такое, что бы из ini файла удалялась строка или строки с определённым значением , потом заново нумеровало параметры чтобы не было пропусков ?
Код: Выделить весь код
Mod1=
Mod2=
Mod3=
Mod4=
Mod5=
Mod6=
Mod7=
Mod8=
Mod9=
Mod10=
Mod11=
Mod12=
Mod13=
Mod14=
Mod15=
Mod16=
Mod17=
Mod18=
Mod19=

Отправлено: 02:01, 09-01-2019 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Тогда выкладывайте и образец Вашего как-бы ini-файла.

Цитата Anidzuka:
если вам не трудно можно еще как то сделать такое, »
Лениво. Коллеги, возможно, помогут. На пакетных файлах такое делать — то ещё удовольствие.

Отправлено: 03:11, 09-01-2019 | #5


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip SADXModLoader.zip
(658 байт, 5 просмотров)

не мой ini файл)) просто хочу сделать лаунчер к одной игре что бы в нём можно было выбрать между оригиналом и версии с модоми ,
так же вид перевода из трёх вариантов выбрать , и чтобы это можно было переключать как захочется , но вот заглох с файлом этим,
осталось только то сделать чтобы 3 мода отрубались при выборе русской версии , врубались обратно на английской, ну естественно что бы
перед первым запуском мод версии, разрешение экрана само установилось по дефолту системы... и так по мелочи нарисовать кнопки, сообщения дописать....
Вообще не думал что так много всего понадобиться когда решил , "неплохо бы сделать лаунчер"
Кстати только что узнал что "AutoPlay Media Studio" умеет определять разрешения экрана, и записать эти данные тоже можно куда угодно... а вот с ини файлом и удалением строк и проверкой нумерации вопрос открыт....((.

Отправлено: 03:55, 09-01-2019 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Anidzuka:
Кстати только что узнал что "AutoPlay Media Studio" умеет определять разрешения экрана, и записать эти данные тоже можно куда угодно... а вот с ини файлом и удалением строк »
Странно, что Вы тогда не нашли там же класс INIFile . Не факт, что он будет работать без имени секции, но проверить можно было бы (и также, можно попробовать проверить, будет ли работать с пустым именем секции Ваше приложение).

Цитата Anidzuka:
и проверкой нумерации вопрос открыт....((. »
Lua, конечно, достаточно специфичный язык (по сравнению хоть с классическими ЯВУ типа Basic/Fortran/Pascal/C, хоть с новомодными Java/Python/Ruby), но писать на нём можно.

Отправлено: 05:34, 09-01-2019 | #7


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Anidzuka:
разрешение экрана само установилось по дефолту системы »
Код: Выделить весь код
@echo off
for /f "delims=" %%a in ('wmic path "win32_desktopmonitor" get ScreenHeight^,ScreenWidth /value^|find "="') do set "%%a"
<SADXModLoader.ini>$ (for /f "delims=" %%a in ('more') do @(
  echo %%a|>nul find "HorizontalResolution" && (
   echo HorizontalResolution=%ScreenWidth%
  ) || (
   echo %%a|>nul find "VerticalResolution" && (
    echo VerticalResolution=%ScreenHeight%
   ) || (
    echo %%a
   )
  )
 )
)& >nul move $ SADXModLoader.ini
pause
по поводу:
Цитата Anidzuka:
что бы из ini файла удалялась строка или строки с определённым значением , потом заново нумеровало параметры чтобы не было пропусков »
не понял, какая разница по порядку или нет для ini файла, это как набор переменных, т.е. они или есть и при этом определены или нет или их нет, порядок совершенно неважен.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:53, 09-01-2019 | #8


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Странно, что Вы тогда не нашли там же класс INIFile . Не факт, что он будет работать без имени секции, но проверить можно было бы (и также, можно попробовать проверить, будет ли работать с пустым именем секции Ваше приложение). »
Ну программа это громко сказано, просто менюшка которая запускает , батники и архивы с нужными файлами/ при определённых условиях и запивает что изменилось в ини файл )) побывал без секции команда не работает
в каждой кнопке вот такой шаблон
Скрытый текст
Код: Выделить весь код
-------------------------------------------------------------
--СПИСОК ПЕРЕМЕННЫХ------
-------------------------------------------------------------
SMT = INIFile.GetValue("Mode.ini", "STEAM_MODE", "Txt");
MMT = INIFile.GetValue("Mode.ini", "MOD_MODE", "Txt");
MML = INIFile.GetValue("Mode.ini", "MODE", "Launcher");
MMO = INIFile.GetValue("Mode.ini", "MODE", "OnlyTXT");
MSS = INIFile.GetValue("Mode.ini", "STEAM_MODE", "Sound");
MMS = INIFile.GetValue("Mode.ini", "MOD_MODE", "Sound");
--- RMOD = File.Run("AutoPlay\\run_mod.bat", "", _SourceFolder, SW_HIDE, true);
--- RSTM = File.Run("AutoPlay\\run_steam.bat", "", _SourceFolder, SW_HIDE, true);
--- MENS = File.Run("AutoPlay\\en_sound.exe", "", "system", SW_SHOWNORMAL, true);
--- SENS = File.Run("AutoPlay\\en_sound.exe", "", _SourceFolder, SW_SHOWNORMAL, true);
--- MRUS = File.Run("AutoPlay\\rus_sound.exe", "", "system", SW_SHOWNORMAL, true);
--- SRUS = File.Run("AutoPlay\\rus_sound.exe", "", _SourceFolder, SW_SHOWNORMAL, true);
--- MFIX = File.Run("AutoPlay\\mod.exe", "", _SourceFolder, SW_HIDE, true);
--- SFIX = File.Run("AutoPlay\\steam.exe", "", _SourceFolder, SW_HIDE, true);
--- RTXT = File.Run("AutoPlay\\rus_txt.exe", "", _SourceFolder, SW_HIDE, true);
--- ETXT = File.Run("AutoPlay\\en_txt.exe", "", _SourceFolder, SW_HIDE, true);
--- FTXTEN = File.Run("AutoPlay\\en_txt_fix.exe", "", _SourceFolder, SW_HIDE, true);
--- FTXTRU = File.Run("AutoPlay\\rus_txt_fix.exe", "", _SourceFolder, SW_HIDE, true);

-------------------------------------------------------------
-----------------------------------------------------
----Действия------
-----------------------------------------------------
--- Английскя steam-версия
if MML == "steam" and SMT == "EN" and MSS == "EN"  then
Paragraph.SetText("Paragraph1",SteamEN);
end

--- Русская steam-версия, голос и текст
if MML == "steam" and SMT == "RU" and MSS == "RU"  then
Paragraph.SetText("Paragraph1",SteamRU);
end

--- Русская steam-версия с английской озвучкой
if MML == "steam" and SMT == "RU" and MSS == "EN"  then
Paragraph.SetText("Paragraph1",SteamRUT);
end

--- Английскя BetterSADX-версия
if MML == "mod" and MMT == "EN" and MMS == "EN"  then
RSTM = File.Run("AutoPlay\\run_steam.bat", "", _SourceFolder, SW_HIDE, true);
SFIX = File.Run("AutoPlay\\steam.exe", "", _SourceFolder, SW_HIDE, true);
--------------------------------------------------------------------
--проверка 
if MSS == "RU" then
SENS = File.Run("AutoPlay\\en_sound.exe", "", _SourceFolder, SW_SHOWNORMAL, true);
ETXT = File.Run("AutoPlay\\en_txt.exe", "", _SourceFolder, SW_HIDE, true);
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Txt", "EN");
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Sound", "EN");
INIFile.SetValue("Mode.ini", "MODE", "Launcher", "steam");
else
FTXTEN = File.Run("AutoPlay\\en_txt_fix.exe", "", _SourceFolder, SW_HIDE, true);
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Txt", "EN");
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Sound", "EN");
INIFile.SetValue("Mode.ini", "MODE", "Launcher", "steam");
end
end


--- Русская BetterSADX-версия, голос и текст
if MML == "mod" and MMT == "RU" and MMS == "RU"  then
RSTM = File.Run("AutoPlay\\run_steam.bat", "", _SourceFolder, SW_HIDE, true);
SFIX = File.Run("AutoPlay\\steam.exe", "", _SourceFolder, SW_HIDE, true);
--------------------------------------------------------------------
--проверка 
if MSS == "EN" then
SRUS = File.Run("AutoPlay\\rus_sound.exe", "", _SourceFolder, SW_SHOWNORMAL, true);
RTXT = File.Run("AutoPlay\\rus_txt.exe", "", _SourceFolder, SW_HIDE, true);
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Txt", "RU");
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Sound", "RU");
INIFile.SetValue("Mode.ini", "MODE", "Launcher", "steam");
else
FTXTRU = File.Run("AutoPlay\\rus_txt_fix.exe", "", _SourceFolder, SW_HIDE, true);
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Txt", "RU");
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Sound", "RU")
INIFile.SetValue("Mode.ini", "MODE", "Launcher", "steam");
end
end

--- Русская BetterSADX-версия с английской озвучкой
if MML == "mod" and MMT == "RU" and MMS == "EN"  then
RSTM = File.Run("AutoPlay\\run_steam.bat", "", _SourceFolder, SW_HIDE, true);
SFIX = File.Run("AutoPlay\\steam.exe", "", _SourceFolder, SW_HIDE, true);
--------------------------------------------------------------------
--проверка 
if MSS == "EN" then
RTXT = File.Run("AutoPlay\\rus_txt.exe", "", _SourceFolder, SW_HIDE, true);
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Txt", "RU");
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Sound", "EN");
INIFile.SetValue("Mode.ini", "MODE", "Launcher", "steam");
else
SENS = File.Run("AutoPlay\\en_sound.exe", "", _SourceFolder, SW_SHOWNORMAL, true);
FTXTRU = File.Run("AutoPlay\\rus_txt_fix.exe", "", _SourceFolder, SW_HIDE, true);
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Txt", "RU");
INIFile.SetValue("Mode.ini", "STEAM_MODE", "Sound", "EN")
INIFile.SetValue("Mode.ini", "MODE", "Launcher", "steam");
end
end



Цитата alpap:
Цитата Anidzuka:
разрешение экрана само установилось по дефолту системы »
Код:
@echo off
for /f "delims=" %%a in ('wmic path "win32_desktopmonitor" get ScreenHeight^,ScreenWidth /value^|find "="') do set "%%a"
<SADXModLoader.ini>$ (for /f "delims=" %%a in ('more') do @(
echo %%a|>nul find "HorizontalResolution" && (
echo HorizontalResolution=%ScreenWidth%
) || (
echo %%a|>nul find "VerticalResolution" && (
echo VerticalResolution=%ScreenHeight%
) || (
echo %%a
)
)
)
)& >nul move $ SADXModLoader.ini
pause
по поводу:
Цитата Anidzuka:
что бы из ini файла удалялась строка или строки с определённым значением , потом заново нумеровало параметры чтобы не было пропусков »
не понял, какая разница по порядку или нет для ini файла, это как набор переменных, т.е. они или есть и при этом определены или нет или их нет, порядок совершенно неважен. »
Круто, но почему то жалуется на отсутствие файла.
Так проблема в том что это INI сторонней программы которая крайне чувствительна к любым лишним разделам или нарушению нумерации списка, сразу выдает ошибку , этот ini походу только притворяется ini )))

Отправлено: 19:11, 09-01-2019 | #9


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Anidzuka:
жалуется на отсутствие файла »
запускать рядом с SADXModLoader.ini или указать полный путь к нему в строках 3 и 14, если есть пробелы взять путь в парные кавычки.

Цитата Anidzuka:
крайне чувствительна к любым лишним разделам или нарушению нумерации списка, сразу выдает ошибку »
вероятно ваши изменения в ini затрагивают его кодировку, ну никак изменение чередования строк не должны влиять на работоспособность, только изменения в строках ну и их добавление или отсутствие. Интересно бы проверить, но это же все также надо поустанавливать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:11, 09-01-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Найти текст по маске в файле и вставить найденные значения в ini файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Найти текст в файле и вставить над ним несколько строк Sergey.l Скриптовые языки администрирования Windows 7 28-01-2018 23:06
CMD/BAT - [решено] Найти текст в файле и вставить над ним несколько строк Sergey.l Скриптовые языки администрирования Windows 5 27-12-2017 18:47
CMD/BAT - Найти в подкаталогах файлы по маске и вывести в текст список тех, у которых первые 2 surgutfred Скриптовые языки администрирования Windows 2 27-01-2016 19:07
CMD/BAT - Найти строку в файле по маске bulchonok Программирование и базы данных 8 25-04-2013 01:50
CMD/BAT - С помощью bat-ника найти и заменить текст в файле на текст из другого файла Nun-Nun Скриптовые языки администрирования Windows 1 08-03-2011 15:25




 
Переход