![]() |
Определить путь установки приложения в реестре и скопировать файлы
Добрый день.
Новичек в написание bat-файлов , однако видной владею не плохо. И так задача. Необходимо скопировать из одной директорий в определенную директорию. Однако есть условие. Необходимо определить путь установки приложение через реестр и если путь метода 1 то необходимо произвести следующие действия, однако если это условие не прошло необходимо воспользоваться методам 2. Написал проверил работает при запуске с командной строки. Однако при запаковки bat-файла в Winrar (SFX) не корректно определяется путь именно DATADIR Код: Echo OFF set f=0 :: Определение папки для скина Set skin=skinning ::Определение переменной которую необходимо будет добавить в notes.ini Set mc_skin=EXTMGR_ADDINS=mc_skinning.dll :: Определяем путь программной директорий Lotus Notes cd C:\TEMP\ For /f "tokens=2*" %%a In ('C:\Windows\System32\reg.exe query "HKEY_CURRENT_USER\Software\Lotus\Notes\Installer" ^| Find /i "PROGDIR"') Do Set "PROGDIR=%%b" for /f "tokens=2*" %%a in ('REG query "HKEY_CURRENT_USER\Software\Lotus\Notes\7.0" /v NotesIniPath ^| find "NotesIniPath"') do (Set "NotesPath=%%b" & Set f=1) if %f%==1 ( echo "metod All Users" > C:\TEMP\log.txt echo "ini file = %NotesPath%" >> C:\TEMP\log.txt set j=%NotesPath% set DATADIR=%j:notes.ini=% echo Data Directory %DATADIR:~0% >> C:\TEMP\log.txt echo "Program directory %PROGDIR%" >> C:\TEMP\log.txt md %DATADIR%%skin% echo "Sozdanya papki %DATADIR%%skin%" >> C:\TEMP\log.txt move C:\TEMP\def_background.bmp %DATADIR%%skin% echo "Copy bmp to %DATADIR%%skin%" >> C:\TEMP\log.txt :: Поиск и удаление строки EXTMGR_ADDINS= в конфигурационном файле notes.ini move C:\TEMP\notes.ini "%DATADIR%" echo %mc_skin% >> %NotesPath% type %NotesPath% | findstr /i /v "EXTMGR_ADDINS=" > "%DATADIR%temp_notes.ini" del "%NotesPath%" rename "%DATADIR%temp_notes.ini" "notes.ini" :: Добавление переменной EXTMGR_ADDINS=mc_skinning.dll в конфигурационный файл notes.ini echo %mc_skin% >> "%NotesPath%" icacls "%NotesPath%" /grant "%USERNAME%:(F)" ) else ( echo "Metod Only Me" for /f "tokens=2*" %%a in ('REG query "HKEY_CURRENT_USER\Software\Lotus\Notes\installer" /v DATADIR ^| find "DATADIR"') do (Set "DATADIR=%%b" ) md "%DATADIR%%skin%" move C:\TEMP\def_background.bmp "%DATADIR%%skin%" :: Поиск и удаление строки EXTMGR_ADDINS= в конфигурационном файле notes.ini type "%PROGDIR%notes.ini" | findstr /i /v "EXTMGR_ADDINS=" > "%PROGDIR%temp_notes.ini" del "%PROGDIR%notes.ini" rename "%PROGDIR%temp_notes.ini" notes.ini :: Добавление переменной EXTMGR_ADDINS=mc_skinning.dll в конфигурационный файл notes.ini echo %mc_skin% >> "%PROGDIR%notes.ini" icacls "%PROGDIR%notes.ini" /grant "%USERNAME%:(F)" ) echo move dll to %PROGDIR% >> C:\TEMP\log.txt move C:\TEMP\mc_skinning.dll "%PROGDIR%" |
Время: 11:24. |
Время: 11:24.
© OSzone.net 2001-