Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Изменение содержимого файла (http://forum.oszone.net/showthread.php?t=260845)

Kr1og5n 19-05-2013 11:51 2152438

Изменение содержимого файла
 
Добрый день! Проблема следующая, чтобы программа запустилась мне приходится ежедневно менять в настройках порты (вот такой вот неприятный косяк). Вспомнил про .bat, что им можно автоматизировать процесс. Нужна помощь!

Есть файл system.properties, открывается обычным блокнотом без каких либо проблем. В себе имеет следующие строки:

Код:

## system.properties
#
# each unifi instance requires a set of ports:
#
# unifi.shutdown.port=8081 # for management purpose
# unifi.http.port=8080    # device inform
# unifi.https.port=8443    # controller UI / API
# portal.http.port=8880    # portal redirect port for HTTP
# portal.https.port=8843  # portal redirect port for HTTPs
# unifi.db.port=27117      # local-bound port for DB server
#
# system_ip=a.b.c.d        # the IP devices should be talking to for inform
# unifi.db.nojournal=false # disable mongodb journaling
# unifi.db.extraargs      # extra mongod args
#
#
#
#Sun May 19 08:09:58 UTC 2013
is_default=false
portal.http.port=8860
portal.https.port=8861
unifi.db.port=27117
unifi.http.port=8062
unifi.https.port=8463
unifi.shutdown.port=8081
uuid=0c7cea27-e831-4058-997f-6087b247e2ca

Так вот необходимо строки:

Код:

portal.http.port=8860
portal.https.port=8861
unifi.http.port=8062
unifi.https.port=8463

ежедневно при включении ПК менять на что-нибудь другое, например:

Код:

portal.http.port=8870
portal.https.port=8871
unifi.http.port=8072
unifi.https.port=8473

И зациклить это таким образом, чтобы через день была, допустим, 6-ка в портах, а другой 7-ка и они чередовались.
А в конце сделать запуск самой программы:

Код:

C:\Windows\System32\javaw.exe -jar "C:\Users\User\Ubiquiti UniFi\lib\ace.jar" ui
Так как операция разовая и вообще в первые такое понадобилось и срочно осилить такую схему сам не могу за короткий срок, может кто-нибудь поможет...
Заранее спасибо!!!

Foreigner 19-05-2013 15:02 2152511

Например так:
Код:

@echo off
setlocal

for /f %%i in ('findstr /v "#" file.ini') do set "_$%%i"

set /a n=%date:~0,2% %% 2

set /a _$portal.http.port=8860+%n%0
set /a _$portal.https.port=8861+%n%0
set /a _$unifi.http.port=8062+%n%0
set /a _$unifi.https.port=8463+%n%0

1>file.tmp (

    findstr "#" file.ini
    for /f "tokens=2 delims=$" %%i in ('set _$') do echo %%i

)

move file.tmp file.ini

C:\Windows\System32\javaw.exe -jar "C:\Users\User\Ubiquiti UniFi\lib\ace.jar" ui

В начале месяца 31-ое - 1-ое будет 7

Iska 19-05-2013 15:14 2152516

Цитата:

Цитата Kr1og5n
чтобы через день была, допустим, 6-ка в портах, а другой 7-ка и они чередовались. »

В произвольной папке из файла оригинальной конфигурации «system.properties» создаёте две копии — файлы «system.properties.01» и «system.properties.02». В одном из них указываете одни потребные строки, в другом — другие. Рядом со скопированными файлами конфигураций создаёте следующий пакетный файл:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sFileSource01=%~dp0system.properties.01
set sFileSource02=%~dp0system.properties.02
set sFileDest=%ProgramFiles%\Ubiquiti\system.properties

if exist "%sFileSource01%" (
        if exist "%sFileSource02%" (
                if exist "%sFileDest%" (
                        >nul fc.exe /b "%sFileSource01%" "%sFileDest%" && (
                                >nul copy /y "%sFileSource02%" "%sFileDest%"
                        ) || (
                                >nul copy /y "%sFileSource01%" "%sFileDest%"
                        )
                ) else (
                        echo Destination file [%sFileDest%] not found.
                )
        ) else (
                echo Source file 02 [%sFileSource02%] not found.
        )
) else (
        echo Source file 01 [%sFileSource01%] not found.
)

"%SystemRoot%\System32\javaw.exe" -jar "C:\Users\User\Ubiquiti UniFi\lib\ace.jar" ui

endlocal
exit /b 0


Вместо выделенного в пакетном файле пути укажите свой путь к файлу оригинальной конфигурации «system.properties». Затем добавляете пакетный файл в Планировщик задач, указывая его запуск при старте машины.

Kr1og5n 20-05-2013 08:11 2152846

Премного благодарен! Сегодня закину файлик, завтра проверю как работает.


Время: 18:36.

Время: 18:36.
© OSzone.net 2001-