|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файла и напоминание юзеру |
|
CMD/BAT - [решено] Переименование файла и напоминание юзеру
|
Пользователь Сообщения: 84 |
Профиль | Отправить PM | Цитировать Доброго время суток! Подскажите плиз примером:
Пользователь должен ежедневно копировать (штатными средствами приложения) некую базу, в результате чего в папке C:\Backup образуется файл c именем BASE.ZIP Требуется: 1. Чтобы не затереть файл очередной копией переименовывать его добавляя к имени дату и время ЕГО СОЗДАНИЯ. Не просто дату текущую, а создания - это более информативный вариант. 2. Организовать проверку не только присутствие этого файла вообще, но и проверку его актуальности по той же дате создания. Т.е. если предположим между датой создания и текущей промежуток более 24 часов (лучше наверное в часах - точнее) то бить тревогу и выдать пользователю сообщение (возможно виндовое) и даже может модальное что нужно выполнить копирование. И так напоминать ему каждые 15 минут. Если условие положительное - прекратить проверку. Таким образом осуществляется контроль за пользователем. 3. Если файл удовлетворяет всем условиям и переименован после этого - можно скопировать его в нужное место ...(или его один или настроить синхронизацию, если только это не замедлит процесс) Фишка в том, что приложение старое и не имеет встроенных возможностей для копирования по расписанию и т.д. нужное тупое визуальное копирование штатными средствами - о чем пользователь иногда забывает :-) И довольно часто. |
|
Отправлено: 00:25, 21-07-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить 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 |
Отправлено: 15:39, 21-07-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать amel27, спасиб, само то!
|
Отправлено: 18:10, 23-07-2009 | #3 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Доброго времени суток!
Потестил батник. Вот какие есть наблюдения: 1. Открывавется батник в интерактивном окне, даже если и в свернутом виде в панели - его легко закрыть, тем самым прекратив работу, а это не входит в мои планы :-) если пользователь не создал архивную базу. 2. В связи с 1 пунктом решил сделать запуск батника не через штатный планировщик, а посредством команды AT. Процесс теперь не виден пользователю. Но работать батник как-то начинает не правильно. Он только выводит сообщение пользователю по send, но переименование файла не производит, да и не видит его вообще. Подкладываю нужный файл а ему пофиг. Чтот там нужно ещё если через AT делаю? 3. Нужно такое усовершенствоание батника: дело в том что писался он в расчете на запуск у одного пользователя, а ответственных на самом деле за копирование несколько. Следовательно, если у одного он отработает успешно, то других задолбает сообщениями :-) Значит нужно всёж скидывать как-то факт создания копии куда-то, чтобы остальные могли прочесть и прекратить свои батники тоже. Как это сделать лучше? Допускаю, что в корне сам батник может быть переделан ... |
Отправлено: 20:26, 11-08-2009 | #4 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Насчет скрытия - есть засечтательная утила hidcon
Собсно, работает так же, как и cmd.exe, но окон не видно а весит всего 2 кб (!). По вопросу мультиюзерности: может создавать спец. папки для каждого компа ? А в них копировать базу... Насчет скрытия - есть замечательная утила hidcon Собственно, работает так же, как и cmd.exe, но окон не видно а весит всего 2 кб (!). По вопросу мультиюзерности: может создавать спец. папки для каждого компа ? А в них копировать базу... |
|
------- Отправлено: 21:50, 11-08-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Serg2010
1. Статья: Скрытие консольных окон. 2. AT планирует задание под SYSTEM, у этой учетки нет прав на сетевые ресурсы. В домене это решается простым включением учетки компа в списки доступа шары, в рабочей группе придется открывать доступ к шаре ВСЕМ, включая анонимов. 3. Это лишь шаблон батника, все случаи не учесть - вариантов много: терминал, домен, рабочая группа и т.д. НО скрипт должен быть один, для уведомления нескольких машин достаточно добавить для каждого пользователя "Net Send" с указанием его машины/имени, типа: |
Отправлено: 06:40, 12-08-2009 | #6 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Доброго времни суток!
Спасибо за помощь! А вот по поводу работы скриптов на разных машинах не понял. Зачем мне рассылать сообщения каждому. Я имел ввиду что пользоватлей базы и ответственных за копирование несколько человек и у каждого будет запускаться этот скрипт. Так вот если у одного скрипт обнаржит появление копии и сделает как задумано (переименование и т.д.), то у других то скрипт просто будет крутиться тогда уж до бесконечности. чего им копировать опять если уже всёс делано?. Ведь нужна просто копия базы и не важно кто её сделает. Главно сделать. Предполагаю что тут нужно скидывыаь какой-то флаг в файл и другие компы должны его читать. Как только там положительный ответ им тоже пора загругляься. Как то так. |
Отправлено: 19:04, 12-08-2009 | #7 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Serg2010:
З.Ы. Синхронизация работы нескольких батников не так проста, как кажется - даже если их всего два, не говоря уже о большем количестве... Поэтому, сначала убедите, что в вашем случае это действительно необходимо. |
|
Отправлено: 01:50, 13-08-2009 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Переименование файла | 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 |
|