1

Тема: CMD/BAT: Как делать архивирование с помощью 7-zip используя cmd?

Для архивирование и дальнейшего сжатия и шифрования копий баз Microsoft SQL Server хочу использовать 7-zip +bat + планировщик Windows. В моем случае мне необходимо, чтобы после архивации исходный файл удалялся, для чего в скрипте ниже использую ключ "-sdel". Делаю это для того, чтобы при следующем запуске скрипта он не архивировал то, с чем ранее уже отработал. Возможно есть более оптимальный способ, например, архивировать только файлы чья дата создания либо текущая либо вчерашняя, но я не знаю как такое реализовать. На текущий момент проверяю следующий вариант:

@echo off

set source="D:\test"
set destination="D:\test"
set passwd="Qwerty"
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6%
set curdate=%dd%-%mm%-%yyyy%
"C:\Program Files\7-Zip\7z.exe" a -ssw -mx9 -p%passwd% %destination%\backup_%curdate%.7z %source% -sdel

Проблема при таком скрипте следующая:
1) создаю 1.txt.
2) запускаю bat - есть архив 7z, в котором test\1.txt.
3) создаю 2.txt.
4) запускаю bat - есть архив 7z, в котором файлы test\1.txt и 2.txt и архив 7z в котором файлы test\1.txt.

Я попробовал использовать ключ "-r0 *.7z", чтобы скрипт выполнялся только для файлов *.txt, которые находятся в каталоге, но в таком случае скрипт перестает работать.
Помогите пожалуйста с данной проблемой.

2

Re: CMD/BAT: Как делать архивирование с помощью 7-zip используя cmd?

Может просто сделать 2 папки?
set source="D:\test_1"
set destination="D:\test_2"

А вообще вместо
-r0 *.7z
писать
-x!*.7z

Нас невозможно сбить с пути, нам пофигу куда идти.