Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

файлы бат

.docx
Скачиваний:
67
Добавлен:
02.05.2015
Размер:
33.81 Кб
Скачать

Скрипт архивирует папку файлопомойки (\\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