Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Изменение содержимого файла

Ответить
Настройки темы
CMD/BAT - Изменение содержимого файла

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


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

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


Добрый день! Проблема следующая, чтобы программа запустилась мне приходится ежедневно менять в настройках порты (вот такой вот неприятный косяк). Вспомнил про .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
Так как операция разовая и вообще в первые такое понадобилось и срочно осилить такую схему сам не могу за короткий срок, может кто-нибудь поможет...
Заранее спасибо!!!

Отправлено: 11:51, 19-05-2013

 

Ветеран


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

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


Например так:
Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:02, 19-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Цитата 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». Затем добавляете пакетный файл в Планировщик задач, указывая его запуск при старте машины.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:14, 19-05-2013 | #3


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


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

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


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

Отправлено: 08:11, 20-05-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Изменение содержимого файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск и отображение содержимого файла ConMan Скриптовые языки администрирования Windows 17 24-11-2016 20:24
CMD/BAT - [решено] Поиск и изменение содержимого в INI файле avb_trader Скриптовые языки администрирования Windows 6 11-10-2010 08:20
Уменьшение объема содержимого iso файла. borison Хочу все знать 6 11-07-2008 09:11
Востановление содержимого word файла frodo17 Хочу все знать 2 25-08-2007 15:50
изменение содержимого файла slaine Вебмастеру 2 21-08-2005 18:30




 
Переход