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

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

Ответить
Настройки темы
CMD/BAT - [решено] выбрать, заархивировать, скопировать

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


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

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


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

Помогите пожалуйста вот с чем.
В определенную папку, допустим с:\temp, каждый день создается бэкап, нужно этот файл определить по дате, заархивировать (если возможно присваивать каждый раз архиву имя в виде даты архивации) и потом готовый архив скопировать на другой компьютер по сети.

Спасибо.

Отправлено: 22:34, 15-11-2010

 

Аватара для gora

Ушёл из жизни


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

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


Код: Выделить весь код
@echo Off
Set SrcDir=e:\something\SPB\scan
Set Arhive=e:\something\SPB\arhive

7z a "%Arhive%\%Date:~6,4%%Date:~3,2%%Date:~0,2%.zip" "%SrcDir%\*">Nul
cd /d "%SrcDir%"
RD /S /Q %SrcDir% 2>Nul
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:34, 20-01-2011 | #11



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

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


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


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

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


Здорово. Все оказалось намного проще
Только еще один момент. Нужно обойтись одним скриптом.
Структура папок такова:
something
|
|_MSK
| |
| |_scan
| |_arhive
|
|_SPB
|
|_scan
|_arhive

Нужно для MSK делать тоже самое, что и для SPB

Отправлено: 12:51, 20-01-2011 | #12


Аватара для gora

Ушёл из жизни


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

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


Код: Выделить весь код
@echo Off
SETLOCAL enabledelayedexpansion
Set SrcDir1=e:\something\SPB\scan
Set Arhive1=e:\something\SPB\arhive
Set SrcDir2=e:\something\MSK\scan
Set Arhive2=e:\something\MSK\arhive

Set FS=%CD%
For /L %%i In (1,1,2) Do (
	7z a "!Arhive%%i!\%Date:~6,4%%Date:~3,2%%Date:~0,2%.zip" "!SrcDir%%i!\*">Nul
	cd /d "!SrcDir%%i!"
	RD /S /Q "!SrcDir%%i!" 2>Nul
	cd /d "%FS%"
)
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:15, 20-01-2011 | #13


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


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

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


Можно еще один глупый вопрос?
Я так и не поняла, что означает
1>Nul и 2>Nul
Не могли бы вы пояснить это

Отправлено: 09:49, 21-01-2011 | #14


Аватара для gora

Ушёл из жизни


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

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


Цитата Sirimika:
Не могли бы вы пояснить это »
На форуме есть "Поиск" (в верхней части страницы)
1>Nul и 2>Nul

Отправлено: 09:59, 21-01-2011 | #15


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


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

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


не внимательно искала
Огромное спасибо за помощь

Отправлено: 10:06, 21-01-2011 | #16


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


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

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


А как можно реализовать проверку: если папка scan пустая, то ничего не делать.
Сейчас он в любом случае создает архив, даже если файлов нет, то архив получается пустой

дописала строчку перед самим архивированием
if not exist "!SrcDir%%i!\*.*"goto End
но он все равно создает пустой архив.

Как правильно ему указать, что нужно проверять наличие файлов в папке, а не существование самой папки

Запись
dir "%ScrDir%%i\*%" /a-d 2>nul >nul && goto 1
тоже не дает желаемого эффекта

Последний раз редактировалось Sirimika, 31-01-2011 в 16:55.


Отправлено: 16:16, 31-01-2011 | #17


Аватара для gora

Ушёл из жизни


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

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


Цитата Sirimika:
если папка scan пустая, то ничего не делать »
Код: Выделить весь код
@Echo Off
SETLOCAL enabledelayedexpansion
Set SrcDir1=e:\something\SPB\scan
Set Arhive1=e:\something\SPB\arhive
Set SrcDir2=e:\something\MSK\scan
Set Arhive2=e:\something\MSK\arhive
Set FS=%CD%
For /L %%i In (1,1,2) Do (
	RD "!SrcDir%%i!" 2>Nul
	If Exist "!SrcDir%%i!" (
		7z a "!Arhive%%i!\%Date:~6,4%%Date:~3,2%%Date:~0,2%.zip" "!SrcDir%%i!\*">Nul
		cd /d "!SrcDir%%i!"
		RD /S /Q "!SrcDir%%i!" 2>Nul
		cd /d "%FS%"
	) Else MD "!SrcDir%%i!" 2>Nul
)
Pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:07, 31-01-2011 | #18


Ветеран


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

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


Цитата Sirimika:
Запись
dir "%ScrDir%%i\*%" /a-d 2>nul >nul && goto 1
тоже не дает желаемого эффекта »
У меня даёт:
Код: Выделить весь код
dir "E:\Песочница\0031\*.*" /a:-d 1>nul 2>&1 && echo 1 || echo 2
Процент «%» лишний?

Отправлено: 20:07, 31-01-2011 | #19


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


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

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


Большое спасибо. Понимаю, что мои проблемы в том, что я не знаю команд.

Цитата Iska:
Процент «%» лишний? »
Позволю не согласиться. Тут я совершила опечатку. У меня в коде было написано:
Код: Выделить весь код
dir "%SrcDir%%i%\*" /a-d 2>Nul >Nul && goto1

Отправлено: 09:18, 01-02-2011 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - Не получается скопировать файл Teenko Microsoft Windows 2000/XP 6 16-02-2012 15:17
HDD - Не могу скопировать информацию alleclf Накопители (SSD, HDD, USB Flash) 14 13-02-2008 17:24
как скопировать сайт? Millenium Вебмастеру 12 25-06-2005 20:36
Посекторно скопировать HDD ? Sasha73 Непонятные проблемы с Железом 12 07-10-2004 13:07
Не могу скопировать папку в Win98 Rustik Microsoft Windows 95/98/Me (архив) 11 04-01-2003 21:47




 
Переход