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

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

Ответить
Настройки темы
CMD/BAT - [решено] Требуется проверка перед удалением

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


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

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


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

Отправлено: 10:27, 17-04-2019

 

Аватара для yurfed

Ветеран


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

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


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

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Последний раз редактировалось yurfed, 17-04-2019 в 15:39.


Отправлено: 11:32, 17-04-2019 | #2



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

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


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


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

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


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

Отправлено: 12:02, 17-04-2019 | #3


Ветеран


Contributor


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

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


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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:06, 17-04-2019 | #4


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


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

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


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

Отправлено: 14:21, 17-04-2019 | #5


Аватара для yurfed

Ветеран


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

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


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

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Последний раз редактировалось yurfed, 17-04-2019 в 15:43.


Отправлено: 15:31, 17-04-2019 | #6


Ветеран


Contributor


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

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


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, нагляднее и, подозреваю, быстрее. Но это дело вкуса и контекста.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 17-04-2019 в 19:12.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:22, 17-04-2019 | #7


Ветеран


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

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


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

Отправлено: 20:28, 17-04-2019 | #8


Ветеран


Contributor


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

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


А если хорошо почитать хелп в 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 должен иметь возможность использовать бОльше ОП во время работы. Надо бы сравнить на практике, но пока лень

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 17-04-2019 в 21:02.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:49, 17-04-2019 | #9


Ветеран


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

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


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

Отправлено: 22:11, 17-04-2019 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Проверка присутствия пакета обновления в системе перед установкой osmaster Скриптовые языки администрирования Windows 0 24-10-2017 18:56
Любой язык - [решено] Проверка наличия файлов перед запуском приложения Armsinglom Скриптовые языки администрирования Windows 2 15-07-2017 13:50
[решено] Проверка процессора перед покупкой NIK007 Процесcоры 4 17-10-2015 22:54
Медиа - Проверка размера файлов перед записью на оптический диск Eliyahu Программное обеспечение Windows 8 18-02-2013 14:46
Проверка привода на возможность записи перед запуском Nero SyCraft Автоматическая установка приложений 1 16-11-2010 16:22




 
Переход