Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вывод информации исполнения BAT файла в log (http://forum.oszone.net/showthread.php?t=351709)

Nilf 11-08-2022 13:34 2990174

Вывод информации исполнения BAT файла в log
 
Здравствуйте, господа!

Суть проблемы:
Есть bat файл, результаты исполнения которого необходимо вывести в текстовый файл. Есть использовать что-то вроде
Код:

C:\Temp\Services\BackUpServ\output.txt 2>&1( sc config  AcrSch2Svc start= Auto)
, то по итогу в файле логов получим только результат исполнения самой команды ([SC] ChangeServiceConfig: успех) , а что конкретно исполнялось становиться не ясно. Т.е. если скажем будет исполняться не одна строка кода, и в какой-то строке будет ошибка, то не будет очевидно какая команда не исполнилась.

Если делать отдельный BAT и запускать через него другой с указанием сбора логов в отдельный файл
Код:

start Code.vbs >> output.txt
, то тут возникает проблема невозможности запуска первоначального скрипта под правами администратора.

Подскажите пожалуйста возможный выход. Заранее благодарен!

megaloman 11-08-2022 14:22 2990177

Может быть так?
Код:

>"С:\Temp\Services\BackUpServ\output.txt" 2>&1 sc config AcrSch2Svc start= Auto

Nilf 11-08-2022 14:28 2990179

Цитата:

Цитата megaloman
Ветеран
Может быть так?
Код:
>"С:\Temp\Services\BackUpServ\output.txt" 2>&1 sc config AcrSch2Svc start= Auto »

К сожалению нет, не хотит.

megaloman 11-08-2022 14:39 2990181

Цитата:

Цитата Nilf
Есть bat файл, результаты исполнения которого необходимо вывести в текстовый файл. »

Цитата:

Цитата Nilf
К сожалению нет, не хотит. »

Что именно? В текстовый файл можно вывести только результат вывода команд. И если Sc выводит в консоль только "[SC] ChangeServiceConfig: успех" иных результатов не увидите. Если в батнике несколько команд, которые надо записать в файл, то, например, вот этот бредовый набор прекрасно записывается
Код:

@Echo Off
cls
>"C:\Temp\Services\BackUpServ\output.txt" 2>&1 (
        sc config  /?
        Dir C: /B /A:D
        For /L %%i In (1000001,1,1000010) Do Echo %%i
)
Exit /B

Можно и проще, всё, что в батнике выводится в консоль, записать в файл, то батник можно запустить:
имя_батника.bat >"C:\Temp\Services\BackUpServ\output.txt" 2>&1

Nilf 11-08-2022 15:01 2990185

Цитата:

Цитата megaloman
Что именно? В текстовый файл можно вывести только результат вывода команд. И если Sc выводит в консоль только "[SC] ChangeServiceConfig: успех" иных результатов не увидите. Если в батнике несколько команд, которые надо записать в файл, то, например, вот этот бредовый набор прекрасно записывается »

Вот в этом то и загвоздка, хотелось бы как-то реализовать возможность отображения не только результата исполнения команды, но и саму команду. Т.е. при исполнении команды
Код:

sc config AcrSch2Svc start= Auto
я видел в фале лога не только "[SC] ChangeServiceConfig: успех" а еще и саму команду которая была исполнена, т.е.:

"sc config AcrSch2Svc start= Auto
[SC] ChangeServiceConfig: успех".

Вот и хотелось узнать можно ли это как-то реализовать.

Цитата:

Цитата megaloman
Можно и проще, всё, что в батнике выводится в консоль, записать в файл, то батник можно запустить:
имя_батника.bat >"C:\Temp\Services\BackUpServ\output.txt" 2>&1 »

Здесь тогда придется запускать ручками через CMD от имени администратора (что в моем случае не вариант), либо делать отдельный батник с этой строкой, но тогда имя_батника.bat не будет запущен от имени администратора и мои команды в самом батнике не сработают. Получается что тогда единственный вариант - дописывать батник так, чтобы перед запуском ввести идентификационный данные админа и потом запускать?

megaloman 11-08-2022 15:18 2990187

Так это не результат исполнения, Вы хотите, чтобы Echo Off не работало, тогда вот так:
Код:

@Echo Off
cls
        >"Z:\Temp\Services\BackUpServ\output.txt" 2>&1 Call :Procedurka
Exit /B       

:Procedurka
@Echo On
        sc config  /?
        Dir C: /B /A:D
        For /L %%i In (1000001,1,1000010) Do Echo %%i
@Echo Off
Exit /B


Nilf 12-08-2022 07:09 2990250

Цитата:

Цитата megaloman
Так это не результат исполнения, Вы хотите, чтобы Echo Off не работало, тогда вот так:
Код:
@Echo Off
cls
>"Z:\Temp\Services\BackUpServ\output.txt" 2>&1 Call :Procedurka
Exit /B
:Procedurka
@Echo On
sc config /?
Dir C: /B /A:D
For /L %%i In (1000001,1,1000010) Do Echo %%i
@Echo Off
Exit /B »

Спасибо большое! Именно то что мне и было нужно )


Время: 23:50.

Время: 23:50.
© OSzone.net 2001-