|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] *.ini |
|
CMD/BAT - [решено] *.ini
|
Новый участник Сообщения: 9 |
Профиль | Отправить PM | Цитировать |
|
Отправлено: 08:46, 10-09-2018 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать @echo off set "Z=server=F:\work\servise\liteServerSQL\sqlite.db" :: Добавить строку в конец файла "file.ini" >>file.ini echo %Z% :: Удалить указанную строку из файла "file.ini" <file.ini>$ (for /f "delims=" %%a in ('find /n /v "%Z%"') do @set "s=%%a"& cmd /v/c echo[!s:*]^^=!)& >nul move $ file.ini pause |
Отправлено: 09:57, 10-09-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата VladimirVVP:
powershell $file = 'test.ini' $r = 'server=F:\\work\\servise\\liteServerSQL\\sqlite.db' $reg1_1 = "(DBMS\s*=\s*sqlite)\s*"+"$r" $reg1_2 = "(DBMS\s*=\s*sqlite)(\s*)" $reg2_1 = '$1' $reg2_2 = '$1$2'+"$($r -replace '\\\\','\')"+'$2' if (($a = gc $file -raw) -match $reg1_1){$a -replace $reg1_1,$reg2_1|sc $file -non} else {$a -replace $reg1_2,$reg2_2|sc $file -non} |
|
------- Последний раз редактировалось YuS_2, 10-09-2018 в 14:52. Отправлено: 14:34, 10-09-2018 | #3 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать и все таки я рано радовался
не получается... Цитата alpap:
Цитата YuS_2:
я папробовал такой вариант @echo off setlocal enabledelayedexpansion Set infile=test.ini Set find=server Set replace=server=%~dp0liteServerSQL\sqlite.db @echo off setlocal enabledelayedexpansion set COUNT=0 for /F "tokens=* delims=, eol=#" %%n in (!infile!) do ( set LINE=%%n set TMPR=!LINE:%find%=%replace%! Echo !TMPR!>>TMP.TXT ) move TMP.TXT %infile% server=F:\work\servise\liteServerSQL\sqlite.db=F:\work\servise\liteserver=F:\work\servise\liteServer SQL\sqlite.dbSQL\sqlite.db=F:\work\servise\liteserver=F:\work\servise\liteServerSQL\sqlite.db=F:\wor k\servise\liteserver=F:\work\servise\liteServerSQL\sqlite.dbSQL\sqlite.dbSQL\sqlite.db в общем суть вот в чем... в программе пользователь сам выбирает в каком каталоге разместить значение передается в bat и тот должен в указанном каталоге создать папку liteServerSQL и переместить туда sqlite.db а выбранный путь нужно записать в seting.ini это можно и в программе сделать, но есть но, папке liteServerSQL нужно открыть общий доступ, чего не возможно сделать из программы по этому я и использую bat и соотвественно хотел передать в него весь этот процес, что бы не занимать прорамму кодом.. но походу это не получится .. потому сделаю так пользователь в программе выбирает папку для размещения параметр записывается в setting.ini после запускаем программно этот самый батник батник берет значение из setting.ini и проделывает уже известные действия и опять не понимаю как мне получить это значение server=F:\work\servise\liteServerSQL\sqlite.db из ini, просмотрел много вариантов и на этом форуме то же поискал, примеры есть но не могу врубиться как адаптировать под себя просто я с батниками только-только сталкнулся и много еще не понимаю.. |
||
Отправлено: 22:28, 12-09-2018 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата VladimirVVP:
Цитата VladimirVVP:
Файл 154128 Файл 154129 Как видно все работает для ваших же выше условий Потом, воды много льете, а конкретно задачу для bat я увы не понял. Давайте четким машинным языком: задача1 -Есть файл ini, в нем такое содержание, кодировка файла такая -Надо в файле сделать что-то чтобы получилось вот это задача2 -Есть файл ini, в нем теперь такое содержание, кодировка файла такая -Надо в файле сделать что-то чтобы получилось теперь вот это |
|||
Последний раз редактировалось alpap, 12-09-2018 в 22:56. Отправлено: 22:43, 12-09-2018 | #5 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать ок
есть файл setting.ini содержание файла: [Script] Enabled=1 [Options] DBMS=sqlite server=F:\work\service\ [Grids] frmServiceCen.tgList.ColCount=5 frmServiceCen.tgList.0=87 frmServiceCen.tgList.1=80 frmServiceCen.tgList.2=84 frmServiceCen.tgList.3=71 Файл в кадировке ANSI в корневой папке батника находится sqlite.db нужно получить значение параметра server то есть F:\work\service\ в полученом адресе нужно создать папку liteServerSQL, открыть к этой папке общий доступ и скапировать в нее sqlite.db |
Отправлено: 03:08, 13-09-2018 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать VladimirVVP,
если файлы: setting.ini и sqlite.db в одной директории с bat, то: @echo off set "fz=setting.ini" set "z=server" set "fcp=sqlite.db" set "dsh=liteServerSQL" setlocal enabledelayedexpansion <"%fz%" (for /f "delims=" %%a in ('find /i "%z%"') do @set "%%a") if not exist "!%z%!%dsh%" md "!%z%!%dsh%" net share %dsh%="!%z%!%dsh%" cmd /c takeown /f "!%z%!%dsh%" /r /d y && icacls "!%z%!%dsh%" /grant Administrators:F /t copy "%fcp%" "!%z%!%dsh%" endlocal pause |
Отправлено: 00:43, 15-09-2018 | #7 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Большое Вам спасибо!
|
Отправлено: 08:13, 15-09-2018 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Desktop.ini | optimus_747 | Microsoft Windows 2000/XP | 0 | 29-01-2008 08:59 | |
Загрузка - Boot.ini | C_L_S | Microsoft Windows 2000/XP | 5 | 16-09-2007 12:43 | |
WIN.ini | Leo85 | Microsoft Windows 2000/XP | 1 | 19-10-2006 21:10 | |
setupp.ini | Ven | Автоматическая установка Windows 2000/XP/2003 | 1 | 28-02-2006 17:45 | |
boot.ini | veln | Автоматическая установка Windows 2000/XP/2003 | 4 | 22-02-2005 14:21 |
|