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

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

Ответить
Настройки темы
CMD/BAT - LOG выполнения BAT файла не полон, не пойму как решить. Помогите пожалуйста

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


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

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


Изменения
Автор: sashaneo
Дата: 28-03-2018
Описание: Исправил путь к папке на "Удален файл - С:\88\"
Есть файл BAT, который удаляет файлы по указанную дату (в данном случае - удаляет все что старше 2-х дней).

Код файла BAT

Код: Выделить весь код
@echo off
echo Start Delete_Files_For_Older_2_Days %time%

forfiles /p "C:\88" /s /m *.* /D -2 /C "cmd /c del @path"

echo Stop Delete_Files_For_Older_2_Days %time%
LOG создается и дописывается в один файл доп. командой в планировщике >>C:\LOG\%date%_Delete_Files_For_Older_2_Days.log

Результат выполнения записывается в LOG файл вот так -

Start Delete_Files_For_Older_2_Days 14:47:51,02

Stop Delete_Files_For_Older_2_Days 14:47:51,26

Помогите пожалуйста, сделать так, чтобы выводилось в LOG хотя бы так -

Start Delete_Files_For_Older_2_Days 14:47:51,02
Удален файл - С:\88\FileTest.txt
Stop Delete_Files_For_Older_2_Days 14:47:51,26

Так, как это расписывает скрипт "полного удаления в указанной папке".

*Еще если можно, помогите решить вопрос с этим же скриптом - не удаляет ПАПКИ (вложенные например если имеются в целевой папке), а только файлы.

Заранее спасибо за помощь!

Отправлено: 14:56, 28-03-2018

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Можно воспользоваться robocopy, чтобы переместить старые файлы в другую папку и записать эти файлы в лог, а затем просто удалить эту папку с перемещёнными файлами.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 22:56, 28-03-2018 | #2



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

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


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


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

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


А вывести таким способом как я описал в теме не возможно?

Отправлено: 16:02, 29-03-2018 | #3


Аватара для Казбек

Ветеран


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

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


sashaneo,

Код: Выделить весь код
"cmd /c del /q @path && echo @path>>logfile.log"
Следующая команда так же будет писать неудачные удаления:
Код: Выделить весь код
"cmd /c del /q @path && echo @path>>logfile.log || echo @path>>logfile.err"

-------
Кто реку перешел, тому росы бояться ни к чему

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

Отправлено: 18:28, 29-03-2018 | #4


Ветеран


Contributor


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

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


Громоздко, но работает. И пустые папки убивает.
Лог файл создаётся. Дата в системе должна отображаться дд.мм.гггг
Код: Выделить весь код
@Echo Off
Set "DelFile=Z:\Box_In\*.*"
Set /A DeltaDay=-2
Set "LogFile=Z:\Box_Out\%Date:~6,4%%Date:~3,2%%Date:~0,2%_DelFile.log"

Call :FromDate %DeltaDay% %Date% "yyyymmdd"

>>"%LogFile%" (
Echo +++ %Date% %Time% Start Delete Files For Older %DeltaDay% Days

FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%DelFile%" /S /B /A:-D /O:D /T:W`) DO Call :DateDelFile "%%f" "%%~tf" "%yyyymmdd%"

Call :DelEmpty "%DelFile%"
Echo === %Date% %Time% Stop Delete Files For Older %DeltaDay% Days
)
GoTo :Eof

:DateDelFile
	Set "DateFile=%~2"
	Set /A DateFile=%DateFile:~6,4%%DateFile:~3,2%%DateFile:~0,2%
        If %DateFile% GEQ %~3 GoTo :Eof
	Del %1 2>&1 &&Echo --- Deleted %DateFile% %1
GoTo :Eof

:DelEmpty
	For /F "Tokens=*" %%A In ('2^>nul Dir "%~dp1" /B /S /A:D ^|Sort /R') Do RD "%%A" 2>nul &&Echo --- Empty Folder Deleted "%%A"
GoTo :Eof

:FromDate
   rem Пересчет даты на заданное кол-во дней
   rem В первом аргументе +- дни
   rem Во втором аргументе дата в формате dd.mm.yyyy
   rem В третем аргументе имя переменной в кавычках где получим новую дату в формате yyyymmdd 

   rem Заимствовано http://forum.oszone.net/thread-186889.html
   rem вызов Call :FromNow %DeltaDay% %Date% "yyyymmdd"
   rem результат в перемменной %yyyymmdd%
	SetLocal
	Set "DT=%~2"
	Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,2%%%100
	Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
	Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
	Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
	Set /A J=J+2-12*L,I=100*(N-49)+I+L
	Set /A yyyy=I,mm=100+J,dd=100+K
	EndLocal& Set "%~3=%yyyy%%mm:~-2%%dd:~-2%"
GoTo :Eof

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

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

Отправлено: 19:39, 29-03-2018 | #5


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


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

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


Спасибо большое за помощь!

Отправлено: 11:50, 11-04-2018 | #6


Ветеран


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

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


Цитата DJ Mogarych:
Можно воспользоваться robocopy, »
ИМХО самое стройное решение.

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 11:33, 13-04-2018 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Запуск bat файла с ожиданием выполнения Alexander_88 Скриптовые языки администрирования Windows 2 10-09-2015 13:02
CMD/BAT - [решено] bat для поиска файла и выполнения действий над искомым файлом DJIOAN Скриптовые языки администрирования Windows 2 22-07-2015 10:15
Разное - SFC 18% и всё((((Помогите пожалуйста с целостностью файлов.. (не умею читать CBS.log) ed45 Microsoft Windows 7 21 16-08-2013 18:27
Прочее - Помогите разобраться с Huawei HG520. Что то не пойму как тут все наподключали... berkut_174 Сетевые технологии 2 16-11-2011 08:59
CMD/BAT - [решено] сохранить окно CMD после выполнения bat файла WChek Скриптовые языки администрирования Windows 6 17-03-2008 11:03




 
Переход