Показать полную графическую версию : [решено] BAT добавление пути в файл конфигурации
Здравствуйте. Нужна помощь.
Нужен батник, который будет прописывать путь в конфигурационном файле, к папке с программой.
Программа копируется в %APPDATA%\Programma
Есть файл конфигурации %APPDATA%\Programma\config.properties
в котором есть параметр “DirDirectory=”
Нужно чтобы батник считал полный путь %APPDATA%\Programma ,
и прописал путь как “DirDirectory=C:\Users\UserName\AppData\Roaming\Programma\”
Сам батник будет запускаться через GPO.
@echo off
(
for /f "tokens=1* delims=:" %%i in ('
findstr /n "^" "%APPDATA%\Programma\config.properties"
') do (
if not "%%j"=="" (
echo.%%j| findstr /iv "DirDirectory="|| (
echo DirDirectory=%APPDATA%\Programma\
)
) else (
echo.
)
)
)>"%APPDATA%\Programma\config_new.properties"
move "%APPDATA%\Programma\config.properties" "%APPDATA%\Programma\config.properties.bak">nul
move "%APPDATA%\Programma\config_new.properties" "%APPDATA%\Programma\config.properties">nul
exit /b
Georgio, Спасибо! Все отрабатывает отлично!
Но только я один момент сразу недоглядел, оказывается, что программа не воспринимает путь как:
DirDirectory=C:\Users\UserName\AppData\Roaming\Programma\
А нужно так:
DirDirectory=C\:\\Users\UserName\AppData\Roaming\Programma\
Подскажите, пожалуйста, как решить подмену?
@echo off
(
for /f "tokens=1* delims=:" %%i in ('
findstr /n "^" "config.properties"
') do (
if not "%%j"=="" (
echo.%%j| findstr /iv "DirDirectory="|| (
echo DirDirectory=%APPDATA::\=\:\\%\Programma\
)
) else (
echo.
)
)
)>config_new.properties
move config.properties config.properties.bak>nul
move config_new.properties config.properties>nul
exit /b
Georgio, а как можно привести путь к такому виду:
DirDirectory=C\:\\Users\\UserName\\AppData\\Roaming\\Programma\\
C \\Programma\\ - все понятно, но как быть с преобразованием пути %APPDATA% ?
Софт оказался написанный на Java, и требует везде двойной \\
@echo off
setlocal enabledelayedexpansion
(
for /f "tokens=1* delims=:" %%i in ('
findstr /n "^" "config.properties"
') do (
if not "%%j"=="" (
echo.%%j| findstr /iv "DirDirectory="|| (
set var=%APPDATA:\=\\%
echo DirDirectory=!var::=\:!\\Programma\\
)
) else (
echo.
)
)
)>config_new.properties
move config.properties config.properties.bak>nul
move config_new.properties config.properties>nul
endlocal
exit /b
То, что нужно!
Отрабатывает отлично! протестил через GPO на 20 машинах.
Спасибо большое за помощь!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.