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

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

Ответить
Настройки темы
CMD/BAT - [решено] Не пишется лог-файл по forfiles. Ищу помощи и совета.

Пользователь


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

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


Здравствуйте.
Прошу помощи и совета.

Нашел решение для удаление старых файлов и подпапок
Одно из, вроде работает 0

Код: Выделить весь код
@ECHO OFF
chcp 866
SET BKUP_DelPath=e:\backup
SET BKUP_Max_Days=7

forfiles /S /P "%BKUP_DelPath%" /M *_base /D -%BKUP_Max_Days% /C "cmd /C if @isdir == TRUE (rd /S /Q @path) else (del /F /A @path)" >> "e:\Deleted.log"

echo pause
PAUSE >nul

Но не пишет в лог что удалено.

Пожалуйста помогите правкой скрипта, чтоб писал в лог.

Заранее большое спасибо!




PS
Отброшенный вариант:
Пишет в лог на удаление файлов,
НЕ пишет в лог удаленные папки.

ГЛАВНОЕ НО: после удаления файлов,
дата папки (из которой удалены файлы) меняется на текущую
и 2я строка уже не может удалить саму папку

Код: Выделить весь код
forfiles /p "%BKUP_DelPath%" /s /m * /D -%BKUP_Max_Days% /C "cmd /c del /q /s @path" >> e:\Deleted.log
forfiles /p %BKUP_DelPath% /m *_base /D -%BKUP_Max_Days% /C "cmd /c IF @isdir == TRUE rd /S /Q @path" >> e:\Deleted.log

Отправлено: 08:30, 28-10-2020

 

Ветеран


Contributor


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

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


blacks2, Вы удаляете старые файлы в папке. А зачем Вы удаляете саму папку? Вы предполагаете, что после удаления старых файлов она пустая? Тогда просто удалите эту папку командой RD ИМЯ-ПАПКИ без ключей без привязки к дате. Непустая папка не удалится. Как удалить пустые папки, на форуме не раз обсуждалось.
С лог-файлом
Код: Выделить весь код
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BKUP_DelPath%" /S /B /A:D ^|Sort /R`) DO 2>nul Rd "%%d"&&>>"e:\Deleted.log" Echo "%%d"

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


Последний раз редактировалось megaloman, 28-10-2020 в 14:58.

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

Отправлено: 09:50, 28-10-2020 | #2



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

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


Пользователь


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

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


Цитата megaloman:
А зачем Вы удаляете саму папку? Вы предполагаете, что после удаления старых файлов она пустая? »
"А что, так можно было!?"
... даже не подумал. Благодарю Вас megaloman



PS
Лог:

Ваш пример
Код: Выделить весь код
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BKUP_DelPath%" /S /B /A:D ^|Sort /R`) DO 2>nul Rd "%%d"
Также найденный на данном форуме
Код: Выделить весь код
For /F "usebackq delims=" %%A In (`Dir "%BKUP_DelPath%" /B /S /A:D 2^>nul^|Sort /R`) Do RD "%%A" 2>nul &&Echo:Папка %%A удаленa

Пробовал добавлять/заменять (знания по CMD не большие)
>> е:\Deleted.log

- не получилось, видимое что-то делаю не так.


Если есть возможность, подскажите пожалуйста как сделать вывод результата в лог?

Отправлено: 16:35, 28-10-2020 | #3


Пользователь


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

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


Цитата megaloman:
blacks2, для Вас я под спойлером в своем сообщении сделал уже, не ленитесь, загляните, там нарисован вывод в лог в самом конце строки »
Багодарствую! Работает!
А спойлер то и не заметил вначале. Ссылки смотрел а спойлер проглядел



P.S.
Итог (если кому-то понадобиться):

Скрытый текст
Код: Выделить весь код
SET BKUP_DelPath=e:\backup_dir
SET BKUP_DelLogs=e:\backup_dir\Deleted.log
SET BKUP_Max_Days=7

forfiles /p "%BKUP_DelPath%" /s /m * /D -%BKUP_Max_Days% /C "cmd /c del /q /s @path" >> %BKUP_DelLogs%
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BKUP_DelPath%" /S /B /A:D ^|Sort /R`) DO 2>nul Rd "%%d"&&>>"%BKUP_DelLogs%" Echo "%%d"

echo pause and end
PAUSE >nul

Отправлено: 06:37, 29-10-2020 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Windows 7 - в какие файлы пишется лог событий? tumanovalex Microsoft Windows 7 4 07-04-2016 03:46
Прошу помощи или совета как смотреть фильмы онлайн на 2 мониторе? swetta Видеокарты 1 07-01-2015 17:01
HDD - [решено] Прошу помощи, совета по оживлению ХАРДА с помощью "донора" medvedkovo Накопители (SSD, HDD, USB Flash) 6 10-12-2008 09:35
Компилированный файл помощи по автоматической установке WinXP morkva Автоматическая установка Windows 2000/XP/2003 2 13-04-2005 13:21
Как вести лог кто когда окрыл файл и/или папку по сети MegaBOT Сетевые технологии 4 05-09-2003 06:13




 
Переход