|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Логирование выполнения команд с датой и временем |
|
CMD/BAT - [решено] Логирование выполнения команд с датой и временем
|
Новый участник Сообщения: 3 |
Помогите с батником, который бы логировал выполнение команд в файл с датой и временем выполнения. Нарыл в интернете несколько примеров, но нормального результата пока получить не удалось, строки дублируются почему. Что я делаю не так?
bat
@echo off setlocal enableextensions enabledelayedexpansion call :OutLog "run bat" call :Outf call :OutLog "end bat" endlocal exit /b 0 :OutLog setlocal enableextensions enabledelayedexpansion set sLine=%~1 for /f "usebackq delims=" %%i in (`date /t`) do set sDate=%%~i for /f "usebackq delims=" %%i in (`time /t`) do set sTime=%%~i >>"%date%.txt" <nul set /p sVar=%sDate%%sTime% if defined sLine ( >>"%date%.txt" echo %sLine% ) else ( >>"%date%.txt" echo. ) :Outf setlocal enableextensions enabledelayedexpansion set sLine1=%~1 ::for /f "usebackq delims=" %%i in (`date /t`) do set tDate=%%~i ::for /f "usebackq delims=" %%i in (`time /t`) do set tTime=%%~i for /f "usebackq delims=" %%i in (`xcopy /y "U:\test1\07.log" "U:\test2"`) do set sCopy=%%~i >>"%date%.txt" <nul set /p sVar1=%sDate%%sTime% %sCopy% if defined sLine1 ( >>"%date%.txt" echo %sLine1% ) else ( >>"%date%.txt" echo. ) endlocal exit /b Результат в логе
28.11.2017 15:02 run bat
28.11.2017 15:02 Скопировано файлов: 1. run bat Скопировано файлов: 1. 28.11.2017 15:02 end bat 28.11.2017 15:02 Скопировано файлов: 1. end bat |
|
Отправлено: 15:04, 28-11-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Pank:
![]() |
|
Отправлено: 15:45, 28-11-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Спасибо, навел на правильный путь
![]() Если кто-будет искать, то вот что получилось: Логирование команды с датой и временем
@echo off setlocal enableextensions enabledelayedexpansion call :OutLog "run bat" TIMEOUT /T 2 /NOBREAK call :Outf TIMEOUT /T 3 /NOBREAK call :OutLog "end bat" endlocal exit /b 0 :OutLog setlocal enableextensions enabledelayedexpansion set sLine=%~1 for /f "usebackq delims=" %%i in (`date /t`) do set sDate=%%~i for /f "usebackq delims=" %%i in (`echo %time:~,-3%`) do set sTime=%%~i >>"%date%.txt" <nul set /p sVar=%sDate%%sTime% if defined sLine ( >>"%date%.txt" echo %sLine% ) else ( >>"%date%.txt" echo. ) endlocal exit /b :Outf setlocal enableextensions enabledelayedexpansion set sLine1=%~1 for /f "usebackq delims=" %%i in (`date /t`) do set tDate=%%~i for /f "usebackq delims=" %%i in (`echo %time:~,-3%`) do set tTime=%%~i for /f "usebackq delims=" %%i in (`xcopy /y "U:\Паника\07.log" "U:\Мусор"`) do set sCopy=%%~i >>"%date%.txt" <nul set /p sVar1=%tDate%%tTime% %sCopy% if defined sLine1 ( >>"%date%.txt" echo %sLine1% ) else ( >>"%date%.txt" echo. ) endlocal exit /b Результат
28.11.2017 16:09:43 run bat
28.11.2017 16:09:45 Скопировано файлов: 1. 28.11.2017 16:09:55 end bat Если требуется логировать выполнение каждой команды(и не только на копирование), в указанном формате, то необходимо каждую команду оборачивать в процедуру или можно как то изящнее решить вопрос? |
Последний раз редактировалось Pank, 28-11-2017 в 16:16. Причина: уточнение Отправлено: 16:15, 28-11-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Pank:
|
|
Отправлено: 16:25, 28-11-2017 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Если использовать & то результаты выполнения команд идут на разных строках, нельзя сделать так чтобы выводилось одной строкой? Может какой-то другой выход есть? |
||
Отправлено: 16:29, 28-11-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Pank:
|
|
Отправлено: 16:53, 28-11-2017 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Ping со временем и датой | The_Immortal | Скриптовые языки администрирования Windows | 33 | 26-07-2022 13:02 | |
CMD/BAT - [решено] Запуск программы и отправка в нее команд со временем | probelp | Скриптовые языки администрирования Windows | 14 | 20-12-2013 14:50 | |
Логирование выполнения скрипта | Alkantel | AutoIt | 3 | 30-08-2013 13:36 | |
CMD/BAT - Работа с датой, временем | alexey_vf | Скриптовые языки администрирования Windows | 9 | 05-06-2013 04:52 | |
CMD/BAT - Проверка на выполнения команд в bat ? | men232 | Скриптовые языки администрирования Windows | 4 | 12-01-2011 22:23 |
|