Имя пользователя:
Пароль:
 

Название темы: [решено] *.ini
Показать сообщение отдельно

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


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

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


и все таки я рано радовался
не получается...
Цитата alpap:
@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 »
к сожалению в конце не нужно...

Цитата YuS_2:
$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} »
а этот почему-то не срабатывает....


я папробовал такой вариант

Код: Выделить весь код
@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

Название темы: [решено] *.ini