Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Требуется проверка перед удалением (http://forum.oszone.net/showthread.php?t=340135)

Romannn1 17-04-2019 10:27 2868067

Требуется проверка перед удалением
 
здравствуйте, создал бат файл который архивирует бэкапы и удаляет старые файлы на серваке.
Если укажу неправильный путь куда архивировать файлы, он не заархивирует бэкапы, но удаление оригиналов всё равно отработает)))
необходимо сделать проверку, если архивирование прошло успешно только тогда удалить файлы ? Если ошибка, то 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 2868073

Цитата:

Цитата Romannn1
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 2868081

yurfed, да это будет сетевая папка

megaloman 17-04-2019 14:06 2868104

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

Romannn1 17-04-2019 14:21 2868106

ОГРОМЕННОЕ СПАСИБО!!!!!

yurfed 17-04-2019 15:31 2868120

Цитата:

Цитата Romannn1
да это будет сетевая папка »

Ну так изначально про это и надо было говорить
Хочу того, не знаю чего.
Цель понятна, цели не понятны :)
Цитата:

Цитата megaloman
ecть ключ -df »

megaloman, попробовал у себя, вроде нормально и без ключей. Но если такое есть, я не против :)
Единственнре - не удаляет, но пишет.
Но откуда такие сложности?

megaloman 17-04-2019 18:22 2868132

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 2868139

Цитата:

Цитата megaloman
ИМХО, WinRar удобнее Rar, нагляднее и, подозреваю, быстрее. »

Медленнее на копейки — GUI рисовать, события принимать и обрабатывать. А так алгоритм один и тот же.

megaloman 17-04-2019 20:49 2868141

А если хорошо почитать хелп в 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 2868149

ОП — оперативная память? Если «да», то какая тут зависимость от GUI, або CUI?

megaloman 17-04-2019 22:16 2868150

Iska, проверил, Вы правы (как практически всегда)

Iska 17-04-2019 23:29 2868164

Увы, это не так.

Romannn1 18-04-2019 09:18 2868205

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


Время: 21:46.

Время: 21:46.
© OSzone.net 2001-