Topic: * bat
Если вдруг кому нибудь понадобится:
Батник позволяет выполнять код с правами администратора
первый вариант
Получаем значение параметра server из файла settings.ini
к значению дабавляем папку liteServerSQL
капируем в нее бд sqlite.db
назначаем папке liteServerSQL общий доступ
@echo off
rem **********************************************************************************
rem прототип кода https://ss64.com/vb/syntax-elevate.html *
rem **********************************************************************************
setlocal
>nul 2>&1 net session&&goto run
if /i "%~1"=="yes" goto run
if /i "%~1"=="" set "args=noparam"
set "file=%~f0"
set "args=%* %args%"
set file=""%file:"=%""
set args=%args:"=""%
>"%temp%\uac.vbs" echo set objShell=CreateObject^("Shell.Application"^)
>> "%temp%\uac.vbs" echo objShell.ShellExecute "cmd", "/c ""%file% ""yes"" %args%""", , "runas", 1
cscript /nologo /e:vbscript "%temp%\uac.vbs"
exit /b
:run
>nul 2>&1 del "%temp%\uac.vbs"
cd /d "%~dp0"
title %cd%
shift
if "%~1"=="noparam" shift
rem Тестовый блок проверки параметров [в боевых условиях блок можно уничтожить]
echo.param_full=[%*] - [test_param %%*]
echo.param_1=[%1] - [test_param %%1]
echo.param_2=[%2] - [test_param %%2]
echo.param_3=[%3] - [test_param %%3]
echo.param_4=[%4] - [test_param %%4]
echo.param_5=[%5] - [test_param %%5]
rem ... и т.д.
rem Конец тестового блока
rem ***************************** основной блок кода / начало*****************************
set "fz=settings.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
rem ***************************** основной блок кода / конец *****************************
pause
второй вариант
создает в корне папку liteServerSQL
переносит в нее бд sqlite.db
назначает папке liteServerSQL общий доступ
@echo off
rem **********************************************************************************
rem прототип кода https://ss64.com/vb/syntax-elevate.html *
rem **********************************************************************************
setlocal
>nul 2>&1 net session&&goto run
if /i "%~1"=="yes" goto run
if /i "%~1"=="" set "args=noparam"
set "file=%~f0"
set "args=%* %args%"
set file=""%file:"=%""
set args=%args:"=""%
>"%temp%\uac.vbs" echo set objShell=CreateObject^("Shell.Application"^)
>> "%temp%\uac.vbs" echo objShell.ShellExecute "cmd", "/c ""%file% ""yes"" %args%""", , "runas", 1
cscript /nologo /e:vbscript "%temp%\uac.vbs"
exit /b
:run
>nul 2>&1 del "%temp%\uac.vbs"
cd /d "%~dp0"
title %cd%
shift
if "%~1"=="noparam" shift
rem Тестовый блок проверки параметров [в боевых условиях блок можно уничтожить]
echo.param_full=[%*] - [test_param %%*]
echo.param_1=[%1] - [test_param %%1]
echo.param_2=[%2] - [test_param %%2]
echo.param_3=[%3] - [test_param %%3]
echo.param_4=[%4] - [test_param %%4]
echo.param_5=[%5] - [test_param %%5]
rem ... и т.д.
rem Конец тестового блока
rem ***************************** основной блок кода / начало*****************************
MD %~dp0liteServerSQL
move %~dp0sqlite.db %~dp0liteServerSQL\sqlite.db
net share liteServerSQL="%~dp0liteServerSQL"
cmd/c takeown /f "%~dp0liteServerSQL" /r /d y && icacls "%~dp0liteServerSQL"
rem ***************************** основной блок кода / конец *****************************
pause