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

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

Ответить
Настройки темы
CMD/BAT - [решено] Переименование файла и напоминание юзеру

Пользователь


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

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


Доброго время суток! Подскажите плиз примером:

Пользователь должен ежедневно копировать (штатными средствами приложения) некую базу, в результате чего в папке C:\Backup образуется файл c именем BASE.ZIP
Требуется:
1. Чтобы не затереть файл очередной копией переименовывать его добавляя к имени дату и время ЕГО СОЗДАНИЯ. Не просто дату текущую, а создания - это более информативный вариант.
2. Организовать проверку не только присутствие этого файла вообще, но и проверку его актуальности по той же дате создания. Т.е. если предположим между датой создания и текущей промежуток более 24 часов (лучше наверное в часах - точнее) то бить тревогу и выдать пользователю сообщение (возможно виндовое) и даже может модальное что нужно выполнить копирование. И так напоминать ему каждые 15 минут. Если условие положительное - прекратить проверку. Таким образом осуществляется контроль за пользователем.
3. Если файл удовлетворяет всем условиям и переименован после этого - можно скопировать его в нужное место ...(или его один или настроить синхронизацию, если только это не замедлит процесс)

Фишка в том, что приложение старое и не имеет встроенных возможностей для копирования по расписанию и т.д. нужное тупое визуальное копирование штатными средствами - о чем пользователь иногда забывает :-) И довольно часто.

Отправлено: 00:25, 21-07-2009

 

Googler


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

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


Serg2010

1-2. Где-то так? Для русской локализации (DD.MM.YYYY HH:MM). Скрипт запланировать на периодичность ~24ч, только в рабочее время, запускать просроченные задания и при обязательной регистрации пользователя - при отсутствии копии скрипт входит в цикл и шлет сообщения с периодом SLEEPS секунд (через NET SEND), в процессе копирования ожидает завершения бэкапа, по окончании - переименует файл.
Код: Выделить весь код
@Echo Off

Set APPDIR=D:\Backup
Set APPZIP=BASE.ZIP
Set SLEEPS=900

:MsgBox
 If Exist "%APPDIR%\%APPZIP%" GoTo :RenZIP
 Net Send %ComputerName% Копирование базы не проводилось очень давно. Требуется срочно выполнить!
 Ping -n %SLEEPS% 127.0.0.1 >Nul
 GoTo :MsgBox
:RenZIP_Loop
 Ping -n %SLEEPS% 127.0.0.1 >Nul
:RenZIP
 For %%i In ("%APPDIR%\%APPZIP%") Do For /F "Tokens=1-5 Delims=-.:/ " %%a In ("%%~ti") Do Set $T=%%c%%b%%a%%d%%e"
 For %%i In ("%APPDIR%\%APPZIP%") Do REN "%%i" "%%~ni_%$T%%%~xi"
 If ErrorLevel 1 GoTo RenZIP_Loop
Exit /B
3. Может совместить с переименованием?
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:39, 21-07-2009 | #2



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

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


Пользователь


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

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


amel27, спасиб, само то!

Отправлено: 18:10, 23-07-2009 | #3


Пользователь


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

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


Доброго времени суток!

Потестил батник. Вот какие есть наблюдения:

1. Открывавется батник в интерактивном окне, даже если и в свернутом виде в панели - его легко закрыть, тем самым прекратив работу, а это не входит в мои планы :-) если пользователь не создал архивную базу.
2. В связи с 1 пунктом решил сделать запуск батника не через штатный планировщик, а посредством команды AT. Процесс теперь не виден пользователю. Но работать батник как-то начинает не правильно. Он только выводит сообщение пользователю по send, но переименование файла не производит, да и не видит его вообще. Подкладываю нужный файл а ему пофиг. Чтот там нужно ещё если через AT делаю?
3. Нужно такое усовершенствоание батника: дело в том что писался он в расчете на запуск у одного пользователя, а ответственных на самом деле за копирование несколько. Следовательно, если у одного он отработает успешно, то других задолбает сообщениями :-) Значит нужно всёж скидывать как-то факт создания копии куда-то, чтобы остальные могли прочесть и прекратить свои батники тоже. Как это сделать лучше? Допускаю, что в корне сам батник может быть переделан ...

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


Аватара для Nik_rus

Пользователь


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

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


Насчет скрытия - есть засечтательная утила hidcon
Собсно, работает так же, как и cmd.exe, но окон не видно а весит всего 2 кб (!).
По вопросу мультиюзерности: может создавать спец. папки для каждого компа ? А в них копировать базу...

Насчет скрытия - есть замечательная утила hidcon
Собственно, работает так же, как и cmd.exe, но окон не видно а весит всего 2 кб (!).
По вопросу мультиюзерности: может создавать спец. папки для каждого компа ? А в них копировать базу...

-------
Бу! Мерзкий любитель кенгуру!


Отправлено: 21:50, 11-08-2009 | #5


Googler


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

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


Serg2010

1. Статья: Скрытие консольных окон.

2. AT планирует задание под SYSTEM, у этой учетки нет прав на сетевые ресурсы. В домене это решается простым включением учетки компа в списки доступа шары, в рабочей группе придется открывать доступ к шаре ВСЕМ, включая анонимов.

3. Это лишь шаблон батника, все случаи не учесть - вариантов много: терминал, домен, рабочая группа и т.д. НО скрипт должен быть один, для уведомления нескольких машин достаточно добавить для каждого пользователя "Net Send" с указанием его машины/имени, типа:
Код: Выделить весь код
Net Send Computer1 Копирование базы не проводилось очень давно. Требуется срочно выполнить!
Net Send Computer2 Копирование базы не проводилось очень давно. Требуется срочно выполнить!
Net Send Computer3 Копирование базы не проводилось очень давно. Требуется срочно выполнить!
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:40, 12-08-2009 | #6


Пользователь


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

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


Доброго времни суток!

Спасибо за помощь!
А вот по поводу работы скриптов на разных машинах не понял. Зачем мне рассылать сообщения каждому. Я имел ввиду что пользоватлей базы и ответственных за копирование несколько человек и у каждого будет запускаться этот скрипт. Так вот если у одного скрипт обнаржит появление копии и сделает как задумано (переименование и т.д.), то у других то скрипт просто будет крутиться тогда уж до бесконечности. чего им копировать опять если уже всёс делано?. Ведь нужна просто копия базы и не важно кто её сделает. Главно сделать. Предполагаю что тут нужно скидывыаь какой-то флаг в файл и другие компы должны его читать. Как только там положительный ответ им тоже пора загругляься. Как то так.

Отправлено: 19:04, 12-08-2009 | #7


Googler


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

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


Цитата Serg2010:
вот по поводу работы скриптов на разных машинах не понял. »
я тоже не понял, так как говорил об обратном - независимо от количества ответственных (машин/пользователей) скрипт должен быть ОДИН (если база ОДНА), причем логичней его запускать там, где хранятся сами архивы.

З.Ы. Синхронизация работы нескольких батников не так проста, как кажется - даже если их всего два, не говоря уже о большем количестве... Поэтому, сначала убедите, что в вашем случае это действительно необходимо.

Отправлено: 01:50, 13-08-2009 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Переименование файла mishkinstvo Microsoft Windows 2000/XP 5 10-12-2021 22:08
[решено] Переименование файла 11943499 AutoIt 1 24-07-2009 20:06
Переименование Файла из его свойств win2005 Хочу все знать 4 09-01-2009 14:21
Доступ - Как запретить переименование определенного файла? SavmiN Microsoft Windows 2000/XP 5 04-05-2008 20:44
[решено] 30 дней как отключить это напоминание на не активированной Winde? UTU Microsoft Windows 2000/XP 12 25-09-2006 23:20




 
Переход