CMD/BAT - [решено] Вывести в лог большой cmd с экрана
-
Shulzzz
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Имеется скрипт в cmd, который обрабатывает последовательность команд, нужно результат его работы видеть на экране и одновременно записывать это все в лог,
способ сначала записать в лог >d:\log.txt, а потом его просмотреть type d:\log.txt не подходит, нужно в реале наблюдать что происходит, а потом еще иметь возможность посмотреть нормальный лог, как на экране, а не те непонятные куски, что записывает выше указанная команда, уже все интернеты облазил ничего внятного кроме огромных непонятных простыней не нашел, не смотря на то что этот вопрос поднимался давным давно и не раз.
способ сначала записать в лог >d:\log.txt, а потом его просмотреть type d:\log.txt не подходит, нужно в реале наблюдать что происходит, а потом еще иметь возможность посмотреть нормальный лог, как на экране, а не те непонятные куски, что записывает выше указанная команда, уже все интернеты облазил ничего внятного кроме огромных непонятных простыней не нашел, не смотря на то что этот вопрос поднимался давным давно и не раз.
-
alpap
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Цитата Shulzzz:
Имеется скрипт в cmd
Цитата Shulzzz:
посмотреть нормальный лог, как на экране, а не те непонятные куски
мил человек, да чтобы вам помочь, код-то показать просто придется, а еще и вероятно внутренности лога, а еще и пояснить насчет просмотра выполнения в реальном времени, потому как некоторые команды отрабатывают очень быстро и "бесшумно" и вероятно придется добавлять задержку и доп. команды.
Имеется скрипт в cmd
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Цитата Shulzzz:
посмотреть нормальный лог, как на экране, а не те непонятные куски
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
мил человек, да чтобы вам помочь, код-то показать просто придется, а еще и вероятно внутренности лога, а еще и пояснить насчет просмотра выполнения в реальном времени, потому как некоторые команды отрабатывают очень быстро и "бесшумно" и вероятно придется добавлять задержку и доп. команды.
-
Shulzzz
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Charg, в чем колхоз то? МДТ этот два раза ставил, так толком и не понял в нем ничего, максимум файл ответов сделать получалось, как сам образ изменить не понял, а в дисм++ все понятно, в аудите то вообще большого ума не надо, делаю как проще, вроде получается. может и до МДТ дорасту когда нибудь.
Iska, Попробовал tee, все работает и это то что мне и нужно, спасибо Вам огромное за грамотные разъяснения!
Upd! Только с кодировкой беда, никак не приведу к общему знаменателю, где то 866, где то 1251, и не пойму как сделать чтобы везде одинаково было.
Iska, Попробовал tee, все работает и это то что мне и нужно, спасибо Вам огромное за грамотные разъяснения!
Upd! Только с кодировкой беда, никак не приведу к общему знаменателю, где то 866, где то 1251, и не пойму как сделать чтобы везде одинаково было.
-
Shulzzz
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
ну вот смотрите. я начну а вы продолжайте
например:
Цитата Shulzzz:
rd /s /q ...
в лог запись будет только при ошибке
Цитата Shulzzz:
md ...
никакого отображения не будет
можно к примеру каждую команду дублировать:
Код:
но для полноценности действий придется делать проверку:
Код:
тут уж хозяин-барин что надо в логе (до какой степени) или как должно выглядеть.
например:
Цитата Shulzzz:
rd /s /q ...
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
в лог запись будет только при ошибке
Цитата Shulzzz:
md ...
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
никакого отображения не будет
можно к примеру каждую команду дублировать:
Код:
Код: Выделить всё
>>log.txt rd /s /q ...
rd /s /q ...
>>log.txt md ...
md ...но для полноценности действий придется делать проверку:
Код:
Код: Выделить всё
if not exist Folder echo Действительна удалена
if exist %~dp0OS\64\Orig\... echo Действительно созданатут уж хозяин-барин что надо в логе (до какой степени) или как должно выглядеть.
-
alpap
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
alpap, Благодарю за быстрое реагирование, хотелось бы что бы выглядело как на экране в окне cmd, там же все отображается как надо, почему нельзя сделать такой же лог, ну или не лог, а просто запись cmd экрана в текстовый файл, меня бы вполне устроило
-
Shulzzz
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Цитата Shulzzz:
хотелось бы что бы выглядело как на экране в окне cmd, там же все отображается как надо,
Shulzzz, так Вам коллега alpap и пишет, что для приведённых им в примере команд на экране ничего не будет при их корректном исполнении.
Цитата Shulzzz:
почему нельзя сделать такой же лог, ну или не лог, а просто запись cmd экрана в текстовый файл, меня бы вполне устроило
Потому что нет такого понятия, как «запись cmd экрана».
Вы можете использовать tee.exe из комплекта GnuWin32 (например, отсюда:
Цитата:
Код:
То есть, Вы можете перенаправить вывод стандартного потока вывода на вход стандартного потока ввода утилиты tee.exe, которая запишет принятое содержимое в заданный файл/файлы (это и будет Ваш лог) и в свой стандартный поток вывода (это будет Ваш экран). Например:
Скрытый текст
[spoiler]Код: [/spoiler]
Результаты исполнения
[spoiler]
[/spoiler]
и т.п.
хотелось бы что бы выглядело как на экране в окне cmd, там же все отображается как надо,
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Shulzzz, так Вам коллега alpap и пишет, что для приведённых им в примере команд на экране ничего не будет при их корректном исполнении.
Цитата Shulzzz:
почему нельзя сделать такой же лог, ну или не лог, а просто запись cmd экрана в текстовый файл, меня бы вполне устроило
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Потому что нет такого понятия, как «запись cmd экрана».
Вы можете использовать tee.exe из комплекта GnuWin32 (например, отсюда:
CoreUtils for Windows
). Кроме того, говорят, что аналог tee.exe с какого-то момента включён в комплект Windows 10 (не знаю, не проверял).Цитата:
Код:
Код: Выделить всё
C:\Program Files (x86)\GnuWin32\bin>tee.exe --help
Использование: C:\Program Files (x86)\GnuWin32\bin\tee.exe [КЛЮЧ]... [ФАЙЛ]...
Копирует стандартный ввод в каждый ФАЙЛ, а также в стандартный вывод.
-a, --append дописать в заданные ФАЙЛЫ
-i, --ignore-interrupts игнорировать сигналы прерывания
--help показать эту справку и выйти
--version показать информацию о версии и выйти
If a FILE is -, copy again to standard output.
Об ошибках сообщайте по адресу .То есть, Вы можете перенаправить вывод стандартного потока вывода на вход стандартного потока ввода утилиты tee.exe, которая запишет принятое содержимое в заданный файл/файлы (это и будет Ваш лог) и в свой стандартный поток вывода (это будет Ваш экран). Например:
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
set sLog=C:\Мои проекты\0283\Log.txt
set sOutByTee="%ProgramFiles(x86)%\GnuWin32\bin\tee.exe" --append "%sLog%"
>nul copy nul "%sLog%"
>nul chcp 1251
echo Hello World|%sOutByTee%
copy "*.*" nul|%sOutByTee%
reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"|%sOutByTee%
>nul chcp 866
endlocal
exit /b 0Результаты исполнения
[spoiler]

[/spoiler]и т.п.
-
Shulzzz
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Shulzzz, можно в PoSh сделать
Код:
запустить cmd с вашим батником, а после выполнить
Код:
в файле будет дамп консоли
Код:
Код: Выделить всё
Start-Transcript -Path имя_файлазапустить cmd с вашим батником, а после выполнить
Код:
Код: Выделить всё
Stop-Transcriptв файле будет дамп консоли
-
Busla
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Цитата Busla:
можно в PoSh сделать
Это как бы не лучшим вариантом из возможных оказалось, потому как и stdout перехватывает, и stderr.
можно в PoSh сделать
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Это как бы не лучшим вариантом из возможных оказалось, потому как и stdout перехватывает, и stderr.
-
Iska
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Iska, почему? ему же лог нужен, а не success-story.
Блин а что это за колхоз в батнике? MDT разверни и настраивай сборку. Там тебе и логи полноценные и возможностей больше.
Блин а что это за колхоз в батнике? MDT разверни и настраивай сборку. Там тебе и логи полноценные и возможностей больше.
-
Charg
Re: CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Цитата Charg:
ему же лог нужен,
Неа. По факту ему нужно:
Цитата Shulzzz:
хотелось бы что бы выглядело как на экране в окне cmd, там же все отображается как надо,
ему же лог нужен,
CMD/BAT - [решено] Вывести в лог большой cmd с экрана
Неа. По факту ему нужно:
Цитата Shulzzz:
хотелось бы что бы выглядело как на экране в окне cmd, там же все отображается как надо,
CMD/BAT - [решено] Вывести в лог большой cmd с экрана