|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Найти текст по маске в файле и вставить найденные значения в ini файл |
|
CMD/BAT - [решено] Найти текст по маске в файле и вставить найденные значения в ini файл
|
Новый участник Сообщения: 11 |
Приветствую, пожалуйста помогите(((
Нужно из файла с таким текстом: 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 HorizontalResolution=2560 VerticalResolution=1080 если с точной нумерацией строк проще можно сохранить в 45-46 строке |
|
Отправлено: 00:25, 09-01-2019 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата alpap:
|
|
Отправлено: 23:23, 09-01-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать можно еще как то сделать такое, что бы из ini файла удалялась строка или строки с определённым значением , потом заново нумеровало параметры чтобы не было пропусков
@Echo Off Set "FileIni=Z:\Soft_In\SADXModLoader.ini" Set "Key=Mod" Set "Val="Perfect Chaos Music Swap" "sadx-frame-limit" "EggCarrierOceanMusic"" Set /A M=0 Move /Y "%FileIni%" "%FileIni%.bak" >nul >"%FileIni%" (FOR /F "usebackq tokens=1* delims==" %%i IN ("%FileIni%.bak") DO Set "S=%%i" &Call :OutAll "%%i" "%%j" %%S:%Key%=%%) GoTo :Eof :OutAll Set /A N=0 Set /A N=%3 2>nul If %N% GTR 0 If %1=="%Key%%N%" Call :Out1 %2 &GoTo :Eof (Echo %~1=%~2) GoTo :Eof :Out1 Set "Value=%~1" For %%a IN (%Val%) DO Call Set "Value=%%Value:%%~a=%%" If Not %1=="%Value%" GoTo :Eof Set /A M+=1 (Echo %Key%%M%=%~1) GoTo :Eof Цитата Anidzuka:
Если тупо записать в конец
@Echo Off Set "FileRes=Z:\Soft_In\Res.txt" Set "FileIni=Z:\Soft_In\SADXModLoader.ini" Set "Res=Settings" >>"%FileIni%" (FOR /F "usebackq tokens=1,2,3 delims=:x " %%i IN ("%FileRes%") DO If "%%i"=="%Res%" ( (Echo HorizontalResolution=%%j) (Echo VerticalResolution=%%k) GoTo :Continue )) :Continue GoTo :Eof |
|
------- Последний раз редактировалось megaloman, 09-01-2019 в 23:33. Отправлено: 23:25, 09-01-2019 | #12 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата alpap:
|
|
Отправлено: 23:40, 09-01-2019 | #13 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать а так все-таки?
@echo off set "f=Диск:\Папка\SADXModLoader.ini" set "H=HorizontalResolution" set "V=VerticalResolution" for /f "delims=" %%a in ('wmic path "win32_desktopmonitor" get ScreenHeight^,ScreenWidth /value^|find "="') do set "%%a" <"%f%">$ (for /f "delims=" %%a in ('more') do @( echo %%a|>nul find "%H%" && echo %H%=%ScreenWidth% echo %%a|>nul find "%V%" && echo %V%=%ScreenHeight% echo %%a|>nul findstr /v /c:"%H%" /c:"%V%" && echo %%a ) )& >nul move $ "%f%" pause |
Отправлено: 23:54, 09-01-2019 | #14 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Цитата alpap:
|
||
Последний раз редактировалось Anidzuka, 10-01-2019 в 00:08. Отправлено: 23:55, 09-01-2019 | #15 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать и еще я никак не пойму, если было
Mod16=smooth-cam Mod17=SoundOverhaul Mod18=SteamAchievements Mod19=super-sonic Mod20=DLCs и станет с изменением по порядку Mod16=smooth-cam Mod17=SoundOverhaul Mod18=super-sonic Mod19=DLCs то сразу видно что теперь значение 'super-sonic' уже имеет Mod18 а не Mod19 и далее все аналогично сбивается (смещается), а это уже точно неправильно, не? |
Отправлено: 00:03, 10-01-2019 | #16 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Спасибо, узнал столько нового, вы все просто СУПЕРРРРРР |
|
Последний раз редактировалось Anidzuka, 10-01-2019 в 00:31. Отправлено: 00:10, 10-01-2019 | #17 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать megaloman, только что понял что значения и обратно нужно будет вставить ((( дико извиняюсь, а можно точно такой же как и с удалением , но только добавление параметра мод с определённым значением ? если возможно сделать так чтобы добавление происходило только если данного значения нет ( простите((
|
Отправлено: 01:13, 10-01-2019 | #18 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Anidzuka:
|
|
Отправлено: 13:47, 10-01-2019 | #19 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать добавление параметра мод с определённым значением так чтобы добавление происходило только если данного значения нет
@Echo Off cls Set "FileIni=Z:\Soft_In\SADXModLoader.ini" Set "Key=Mod" Set "Add="Во поле" "Perfect Chaos Music Swap" "Люли люли" "sadx-frame-limit" "Берёзонька стояла" "EggCarrierOceanMusic"" Set /A N=1000 Set "Pref=A" FOR /F "usebackq tokens=1* delims==" %%i IN ("%FileIni%") DO Call :In "%%i" "%%j" Set /A N=1000 FOR %%i IN (%Add%) DO Set /A N+=1 &Call Set "Z@@%%N%%=%%~i" FOR /F "usebackq tokens=3 delims==" %%i IN (`Set "B@@"`) DO ( FOR /F "usebackq tokens=1,2 delims==" %%a IN (`Set "Z@@"`) DO If /I "%%~i"=="%%~b" Set "%%~a=" ) Set /A N=9000 FOR /F "usebackq tokens=1,2 delims==" %%a IN (`Set "Z@@"`) DO Set /A N+=1 &Call Set "B@@%%N%%=%Key%99=%%~b" Move /Y "%FileIni%" "%FileIni%.bak" >nul Set /A N=0 >"%FileIni%" ( FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "A@@"`) DO Echo %%j FOR /F "usebackq tokens=3 delims==" %%i IN (`Set "B@@"`) DO Set /A N+=1 &Call Echo %Key%%%N%%=%%i FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "C@@"`) DO Echo %%j ) pause GoTo :Eof :In Set /A N+=1 Set /A M=0 Set "InKey=%~1" Call Set "InKey=%%InKey:%Key%=%%" Set /A M=%InKey% 2>nul If %Pref%==B If "%M%"=="0" Set "Pref=C" If %1=="%Key%1" Set "Pref=B" Set "%Pref%@@%N%=%~1=%~2" GoTo :Eof |
------- Отправлено: 17:13, 10-01-2019 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|