
файлы бат
.docx
Скрипт архивирует папку файлопомойки (\\SERVER\e$ \Exchange)
и папку с данными юзеров (домашнюю Данные пользователей (\\SERVER\e$ \Departments))
Скрипт не архивирует медиафайлы, так как они занимают вагон места и их потеря у меня не критична
rem *******************
rem задаём винты где лежат папки для архивирования и винт куда будем бэкапить
rem *******************
SET DRIVE1ST=d:
SET DRIVE2ND=e:
rem *******************
rem пароль на архив
rem *******************
SET PASSWD=qmsdhgsdfgsdfhdsfhsdhf
rem *******************
rem если копировать для надёжности куданить на сетку
rem *******************
rem SET COPYTO=\\shpakk\c$ \!backup
rem ********************
rem *** Проверим путь назначения архива
rem ********************
%DRIVE1ST%
if not exist \!backup md \!backup
if not exist \!backup\Departments md \!backup\Departments
if not exist \!backup\Exchange md \!backup\Exchange
if not exist \!backup\MEDEA_rdisk md \!backup\MEDEA_rdisk
cd \!backup
rem ******************************
rem *** Backup \\SERVER\e$ \Exchange
rem ******************************
SET DIRNAME=Exchange
SET FILENAME=SERVER_Exchange
SET SOURCEDIR=e:\Exchange
rar a -r -m5 -dh -x*.mp3 -x*.fcd -x*.avi -x*.zip -x*.rar -x*.exe -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%\*.*
if not exist %DIRNAME%\%FILENAME%_new.rar goto next2
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%\%FILENAME%.rar %COPYTO%\%DIRNAME%
:next2
rem ***************************
rem *** Backup \\SERVER\e$ \Users
rem ***************************
SET DIRNAME=Departments
SET FILENAME=SERVER_Departments
SET SOURCEDIR=e:\Departments
if not exist %DIRNAME%\%FILENAME%_new.rar goto next3
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_4.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_3.rar %FILENAME%_4.rar
ren %DIRNAME%\%FILENAME%_2.rar %FILENAME%_3.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%_2.rar
:next3
rem *******************
rem это если архив будет большим - кусками бить -v357888k
rem *******************
rem rar a -r -m5 -v357888k -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%
rem *******************
rem архивирование пошло, не берём мультимедиа файлы
rem *******************
rar a -r -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -x*.jpg -x*.tif -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%
goto next4
:next4
rem **********************************
rem *** Create repair disk on \\SERVER
rem **********************************
SET DIRNAME=MEDEA_rdisk
SET FILENAME=MEDEA_rdisk
SET SOURCEDIR=%windir%\repair
%windir%\system32\rdisk.exe /s-
rar a -r -m5 -dh -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%\*.*
if not exist %DIRNAME%\%FILENAME%_new.rar goto next5
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%\%FILENAME%.rar %COPYTO%\%DIRNAME%
:next5
В итоге имеем 3 папки:
Departments, в ней:
SERVER_Departments_2.rar - 2х дневной давности
SERVER_Departments_3.rar - 3х дневной давности
SERVER_Departments_4.rar - 4х дневной давности
SERVER_Departments_new.rar - НОВЫЙ
SERVER_Departments_old.rar - СТАРЫЙ
Exchange
Так как архивируем обменник - он нам сильно то и не нужен храним только сегодняшний и вчерашний архивы
SERVER_Exchange.rar
SERVER_Exchange_old.rar
ну и систему на всякий в папке
SERVER_rdisk
SERVER_rdisk.rar
SERVER_rdisk_old.rar
Как запретить повторный запуск приложения
Если приложение запускается bat-файлом, то отследить (и запретить) его повторный запуск можно таким образом:
pslist.exe -e "процесс"
if %errorlevel%==1 start "" "программа"
pslist - бесплатная утилита, которую можно скачать здесь.
Как создать папку с именем равным текущей дате
Достаточно часто необходимо создавать папку с именем равным текущей дате и затем копировать в нее, например, бэкап. Есть насколько вариантов создания такой папки:
MD %SYSTEMDRIVE%\%date:~-10%
Такая команда создаст в корне системного диска папку с именем равным текущей дате. Эта команда не сработает, если региональные установки отличны от русского и в разделителях даты используется слеш. В таком случае, поможет один из следующих скриптов:
md %systemdrive%\%date:~0,2%_%date:~3,2%_%date:~6,4%
или
md %systemdrive%\%date:~6,4%_%date:~3,2%_%date:~0,2%
Во втором случае, папки будут сортироваться по алфавиту.
Как вариант, можно рассмотреть добавление к имени файла текущей даты:
@echo off
for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%4.%%3.%%2
ren test.txt test%mydate%.txt
Имя файла test.txt будет переименовано в test2005.03.05.txt
Можно ли зациклить в bat-файле выполнение команды?
Иногда необходимо создать bat-файл, который будет запускать некую команду через определённый интервал времени. Для решения этой задачи можно воспользоваться Планировщиком и часто запускать bat-файл из него, а можно создать в bat-файле цикл с паузой.
Цикл организуется при помощи следующих команд:
:loop
... <- здесь команда для создания паузы и другие команды, которые необходимо выполнять в цикле
goto loop
Паузу можно создать при помощи любой команды. Например, при помощи ping:
ping -n 1 -w 100000 192.168.254.254 >nul
-n 1 - выполнить один запрос
-w 100000 - ждать ответа 100 секунд (значение указывается в миллисекундах)
192.168.254.254 - IP адрес, который заведомо не существует в локальной сети, т.е. никогда не ответит на ping
>nul - перенаправление всего вывода команды ping в никуда.
Как в bat-файле создать паузу перед выполнением следующей команды?
Паузу можно создать при помощи любой команды. Например, при помощи ping:
ping -n 1 -w 100000 192.168.254.254 >nul
-n 1 - выполнить один запрос
-w 100000 - ждать ответа 100 секунд (значение указывается в миллисекундах)
192.168.254.254 - IP адрес, который заведомо не существует в локальной сети, т.е. никогда не ответит на ping
>nul - перенаправление всего вывода команды ping в никуда.
Можно использовать утилиту sleep.exe из Ресурскита.
Вам понравилась статья ?
1
2
3
4
5
Рейтинг: 9.6 из 10 / Кол-во голосов: 32
Поделитесь материалом в социальных сетях — просто нажимайте на иконки ниже
9
1
1
1
Статья написана для сайта
http://demon-art.ru
© при копировании материалов, ссылка на сайт автора обязательна!
Уважаемый гость, чтобы помочь сайту, пожалуйста пройдите регистрацию → Зарегистрироваться
Категория › Новости » Интересное Автор › DemonArt Просмотров › (59970) Комментариев › (9) Дата › 10 Май 2011 в 23:44:35
Комментарии
Порядок вывода комментариев:
#1 Murad Спам 03 Мар 2013, 23:46:56
привет а как войти vk, mail, yandex и тд,, почту через bat файл
1
#2 DemonArt Спам 07 Мар 2013, 00:41:25
Здравствуйте, по-моему это невозможно. Юзай C++ Perl PHP. На bat вряд ли можно написать что-то стоящее.
Этот формат создан для выполнения быстрых и лёгких действий. Для более сложных задач используй более профессиональные и удобные программные коды.
0
#3 EDUARD-T Спам 06 Ноя 2013, 11:47:32
У меня вопрос,а реально ли при помощи .bat задать ассоциацию ?
К примеру мне нужно что-бы определённый файл всегда открывался только определённой программой.,скажем .m3u ( плайлист ) что-бы открывал только JetAudio ( плеер ).
0
#4 DemonArt Спам 07 Ноя 2013, 00:56:21
через bat можно запустить программу, но чтобы сделать ассоциацию незнаю.. через виндовс задай чтобы .m3u открывался плеером, или тебе именно надо через bat?
0
#5 EDUARD-T Спам 09 Ноя 2013, 23:00:01
Хотелось бы через bat . Дело в том что я хочу собрать диск с нужными мне программами и среди них есть плеер тот который меня устраивает. И я хотел бы что-бы при установке задавалась ассоциация,точнее после установки плеера.
0
#6 DemonArt Спам 11 Ноя 2013, 21:25:09
даже не могу додуматься как на bat так можно сделать :) Эта прога самая тривиальная.
Лучше использовать более гипкий и тяжелый язык. Если додумаюсь, то сообщу обязательно :)
0
#7 EDUARD-T Спам 11 Ноя 2013, 21:31:13
Я нашёл вот такой вариант кода :
@echo off
setlocal
:try
for /f "tokens=2 delims==" %%i in ('"assoc .mp3 2>nul"') do set "assoc=%%i"
if defined assoc (
ftype MyPlayer_mp3="%ProgramFiles%\My Player\MyPlayer.exe" %%1 %%*
) else (
assoc .mp3=MyPlayer_mp3
goto:try
)
Автор утверждает что у него всё работает.Но я что-то не могу изменить ассоциацию переписав на свой плеер.
1
#8 DemonArt Спам 26 Ноя 2013, 19:39:06
в переменной "MyPlayer_mp3" должна лежать ссылка до "exe" программы получается, так что посмотри где у тебя лежит плеер и подставь свои значения. Попытка не пытка :)
0
Добавление комментария
Имя:
обязательно
E-mail:
обязательно
Введите код:
обязательно Получать ответы на комментарий: 1
Demon-Art.ru » Скачать Фильмы и Игры с торрента, смотрите фильмы онлайн, играйте, читайте IT-новости.
Скачать игры и фильмы с торрента » Форум » Торренты » Софт портал » Новости » Игры онлайн » Фильмы онлайн » Новости
Карта сайта - Карта сайта 2 -
Все права защищены! При копировании материалов, ссылка на наш ресурс обязательна!
DEMON ART
- Дизайн и Разработка сайта © 2008-2014
↑