Seryoga204 |
07-10-2010 20:15 1513817 |
Бекап если при наличии файлов
Подскажите пожалуйста, при помощи батника делаю бекап содержимого папок
Код:
@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
как сделать чтобы не создавался архив, если в данная папка пуста?
|
Код:
@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 байт.
|
El Sanchez |
07-10-2010 21:50 1513896 |
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
|
Цитата:
Цитата El Sanchez
int\... 2010" 2>nul ||"C:\Program Files\7-Zi... »
|
Браво! Изящное решение!
Стало стыдно за свой wall_of_code
|
Время: 02:59.
© OSzone.net 2001-