Войти

Показать полную графическую версию : [решено] Требуется проверка перед удалением


Romannn1
17-04-2019, 10:27
здравствуйте, создал бат файл который архивирует бэкапы и удаляет старые файлы на серваке.
Если укажу неправильный путь куда архивировать файлы, он не заархивирует бэкапы, но удаление оригиналов всё равно отработает)))
необходимо сделать проверку, если архивирование прошло успешно только тогда удалить файлы ? Если ошибка, то exit
Заранее благодарю!


for /f "tokens=1-4 delims=/-\. " %%a in ('date /t') do (
set mjour=%%a
set mmois=%%b
set mannee=%%c
)
set mydate=%mannee%%mmois%%mjour%

rem где брать файлы и архивировать
set indir=D:\BackUP\

rem куда складывать архивы
set destdir=\\comp\url\BackUP\

rem путь до архиватора
set arcpath=C:\Program Files\WinRAR


rem архивируем
"%arcpath%\rar" a -ep1 "%destdir%\%mydate%.rar" "%indir%"

rem удаляем файлы
del /f /q D:\BackUP

pause

yurfed
17-04-2019, 11:32
set destdir=\\comp\url\BackUP\ »Этот путь куда?
for /f "tokens=1-4 delims=/-\. " %%a in ('date /t') do (
set mjour=%%a
set mmois=%%b
set mannee=%%c
)
set mydate=%mannee%%mmois%%mjour%

rem где брать файлы и архивировать
set indir=D:\BackUP\

rem куда складывать архивы
MD D:\Out
set destdir=d:\Out

rem путь до архиватора
set arcpath=C:\Program Files\WinRAR

rem архивируем
"%arcpath%\rar" a -ep1 "%destdir%\%mydate%.rar" "%indir%"

rem удаляем файлы
del /f /q D:\BackUp

Romannn1
17-04-2019, 12:02
yurfed, да это будет сетевая папка

megaloman
17-04-2019, 14:06
Romannn1, у winrar(rar) ecть ключ -df который предписывает архиватору удалить заархивированное. Удалит только в случае успешной архивации. Переложите тяжелый труд на плечи машин!

Romannn1
17-04-2019, 14:21
ОГРОМЕННОЕ СПАСИБО!!!!!

yurfed
17-04-2019, 15:31
да это будет сетевая папка »Ну так изначально про это и надо было говорить
Хочу того, не знаю чего.
Цель понятна, цели не понятны :)
ecть ключ -df »
megaloman, попробовал у себя, вроде нормально и без ключей. Но если такое есть, я не против :)
Единственнре - не удаляет, но пишет.
Но откуда такие сложности?

megaloman
17-04-2019, 18:22
yurfed,попробовал у себя, вроде нормально и без ключей основная идея: del вааще не нужен. Rar c ключом -df удалит сам, причем при успешной архивации, что и требуется получить. А без ключей ненормально :(
А вот применять del - зачем такие сложности?@Echo Off
cls
Set "Backup=D:\Backup"
Set "BackARC=\\comp\url\BackUP"
Set "ARC="C:\Program Files\WinRAR\WinRAR.exe" a -ep1 -df"

FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" &Call Set "@Tdate=%%@Tdate:~0,8%%"
%ARC% "%BackARC%\%@Tdate%.rar" "%Backup%\"
PauseПути: локальные, сетевые, замапленные - совершенно непринципиально, лишь бы был доступ и права
ИМХО, WinRar удобнее Rar, нагляднее и, подозреваю, быстрее. Но это дело вкуса и контекста.

Iska
17-04-2019, 20:28
ИМХО, WinRar удобнее Rar, нагляднее и, подозреваю, быстрее. »
Медленнее на копейки — GUI рисовать, события принимать и обрабатывать. А так алгоритм один и тот же.

megaloman
17-04-2019, 20:49
А если хорошо почитать хелп в WinRar, то можно сделать еще проще@Echo Off
Set "Backup=D:\Backup"
Set "BackARC=\\comp\url\BackUP"
Set "ARC="C:\Program Files\WinRAR\WinRAR.exe" a -ep1 -df -ibck -ag+YYYYMMDD"

Start " " %ARC% "%BackARC%\.rar" "%Backup%\"
Exit /BКлюч -ag+YYYYMMDD добавит к имени архива дату в нужном формате, не надо извращаться.
Запуск WinRar через START позволяет избавиться от командного окна во время архивации. Батник запустит архиватор и завершится.
Ключ -ibck позволяет запустить WinRAR как фоновый процесс в системном лотке, будет себе работать, никому не мешать.
Вот этот вариант применения WinRar вообще можно пропиcать, допустим, в назначенных заданиях без батника, всё, что нужно (по крайней мере, приведенное в скрипте Romannn1), достигается ключами. Единственно, в строке запуска WinRar указать явно все пути.

Iska, GUI рисовать, события принимать и обрабатывать конечно нужно, но я подозреваю, что WinRar должен иметь возможность использовать бОльше ОП во время работы. Надо бы сравнить на практике, но пока лень

Iska
17-04-2019, 22:11
ОП — оперативная память? Если «да», то какая тут зависимость от GUI, або CUI?

megaloman
17-04-2019, 22:16
Iska, проверил, Вы правы (как практически всегда)

Iska
17-04-2019, 23:29
Увы, это не так.

Romannn1
18-04-2019, 09:18
Согласен с megaloman, пути то тут при чем? Я как получил этот вопрос от ветерана , сразу подумал помощи походу не ждать))) и del правда лишний, все архиватором красиво и удобно.
Спасибо еще раз megaloman, очень сильно выручил!!!




© OSzone.net 2001-2012