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

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

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

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


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

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


Подскажите пожалуйста, при помощи батника делаю бекап содержимого папок
Код: Выделить весь код
@Echo Off  
COLOR 9F  
:: Переменные 
Set tm=%time::=-%  
Set tm=%date:~6,4%-%date:~3,2%-%date:~0,2%_%tm:~0,-3%  
"C:\Program Files\7-Zip\7z.exe" a d:\arhiv\tm_%tm%.zip L:\work\Print\2010\*  
CD "L:\work\Print\2010\*" && rd /q /s . 2>nul
как сделать чтобы не создавался архив, если в данная папка пуста?

Отправлено: 20:15, 07-10-2010

 

Старожил


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

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


Код: Выделить весь код
@Echo Off
Color 9F

Set ArchPath=C:\Program Files\7-Zip
Set WorkDir=D:\Temp\test
Set TargetDir=D:\Temp\arch
Set tm=%time::=-%  
Set tm=%date:~6,4%-%date:~3,2%-%date:~0,2%_%tm:~0,-3%

Call :CheckDir %WorkDir%
If %ErrorLevel%==1 Echo Нечего архивировать & Ping -n 5 127.0.0.1>nul & Exit
"%ArchPath%\7z.exe" a "%TargetDir%\tm_%tm%.zip" "%WorkDir%\*"
Pause
Exit

:CheckDir
SetLocal EnableExtensions EnableDelayedExpansion
Set Destination=%1
Set NotEmpty=n
For /F %%a In ('Dir /B /S %Destination%\*.*') Do (
    If ["%%~za"] GTR ["0"] (
    set NotEmpty=y
    goto :StopScan
))
:StopScan
If %NotEmpty%==n (Exit /B 1) Else (Exit /B 0)
ArchPath соответственно - путь к архиватору (без имени исполняемого файла), WorkDir - директория с содержимым которой будет работать архиватор, TargetDir - директория в которой будут сложены архивы. Если в %WorkDir% пусто - будет выведено соответствующее сообщение и скрипт завершит свою работу. Под "пусто" подразумевается то, что в этой директории и её поддиректориях не будет ни одного файла размером больше 0 байт.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:08, 07-10-2010 | #2



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

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


Аватара для El Sanchez

Ветеран


Contributor


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

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


Seryoga204,
Код: Выделить весь код
@Echo Off  
COLOR 9F  
:: Переменные 
Set tm=%time::=-%  
Set tm=%date:~6,4%-%date:~3,2%-%date:~0,2%_%tm:~0,-3%  
if exist "L:\work\Print\2010" rd "L:\work\Print\2010" 2>nul||"C:\Program Files\7-Zip\7z.exe" a d:\arhiv\tm_%tm%.zip "L:\work\Print\2010\*"&&rd /q /s "L:\work\Print\2010" 2>nul

Отправлено: 21:50, 07-10-2010 | #3


Старожил


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

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


Цитата El Sanchez:
int\... 2010" 2>nul||"C:\Program Files\7-Zi... »
Браво! Изящное решение!
Стало стыдно за свой wall_of_code

Отправлено: 22:03, 07-10-2010 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как уменьшить размер CD при наличии дублирующихся файлов Dorian Grey Автоматическая установка Windows 2000/XP/2003 12 21-01-2012 20:25
Прочие - [решено] Что делать если игра запускается только при наличии диска в дисководе firedevil Программное обеспечение Windows 4 13-09-2008 11:54
Откат на старые версии Windows при наличии бэкапа файлов и папок kefi Microsoft Windows NT/2000/2003 8 14-02-2008 13:34
BSOD при наличии компакта piterpen Автоматическая установка Windows 2000/XP/2003 1 21-06-2006 16:00
Запуск программы при наличии CD Green Owl Хочу все знать 10 28-11-2005 16:18




 
Переход