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

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

fooger 26-07-2011 19:31 1720456

Результат выполнение комманды в файл
 
Здравствуйте. CMD/BAT знаю очень плохо.
Мне нужно результат команды запуска службы (net start), сохранить в файл.
Знаю что делается это так:
Код:

net start имя_службы > test.txt
Но это работает только в случае успешного выполнения команды.
Если служба уже запущенна, то CMD выведет "Затребованная служба уже запущенна", но это не будет сохранено в файл (по крайней мере у меня).
Как сделать так, чтобы результат выполнения команды в любом случае сохранялся в файл, даже если он неудачный?
Спасибо!

gora 26-07-2011 19:43 1720462

fooger, попробуйте так:
Код:

net start имя_службы 1>test.txt 2>&1

Anonymоus 26-07-2011 19:45 1720463

Код:

Net Start имя_службы >log.txt||Echo Служба уже запущена >log.txt
UPD: Не заметил, что gora уже ответил, в любом случае, работать будут оба варианта.

fooger 26-07-2011 19:52 1720471

gora, Anonymоus, большое спасибо!
Теперь новый вопрос, а как исправить то, что оно в какой-то не понятной кодировке?
Получается вот что
Код:

‡*вॡ®ў****п б«г¦Ў* 㦥 §*ЇгйҐ**.

„«п ўл§®ў* ¤®Ї®«*ЁвҐ«м*®© бЇа*ўЄЁ **ЎҐаЁвҐ NET HELPMSG 2182.


gora 26-07-2011 19:54 1720473

Цитата:

Цитата Anonymоus
в любом случае, работать будут оба варианта »

Не критики ради, а пользы для... В Вашем варианте при указании несуществующей службы будет выведено "Служба уже запущена" вместо "Неправильное имя службы." :)

Цитата:

Цитата fooger
оно в какой-то не понятной кодировке? »

В кодировке Кириллица DOS

Foreigner 26-07-2011 19:58 1720475

А куда она отдает при успехе, в stdout или stderr?
Код:

net start имя_службы 1>&2 2>test.txt

gora 26-07-2011 20:09 1720479

Foreigner тестовый скрипт:
Код:

net start ZentimoService 1>test.txt 2>&1
net start ZentimoService 1>>test.txt 2>&1
net stop ZentimoService 1>>test.txt 2>&1
net start ZentimoService1 1>>test.txt 2>&1

Выводит в test.txt
Код:

Служба "Zentimo Assistant" успешно запущена.

Затребованная служба уже запущена.

Для вызова дополнительной справки наберите NET HELPMSG 2182.

Служба "Zentimo Assistant" останавливается.
Служба "Zentimo Assistant" успешно остановлена.

Неправильное имя службы.

Для вызова дополнительной справки наберите NET HELPMSG 2185.


Foreigner 26-07-2011 20:11 1720481

Цитата:

Цитата fooger
Теперь новый вопрос, а как исправить то, что оно в какой-то не понятной кодировке? »

Код:

@echo off
setlocal
chcp 866 1>nul

for /f "tokens=*" %%i in ('" 2>&1 net start служба "') do call:echo "%%i"
goto:eof

:echo
chcp 1251 1>nul
1>>1.txt echo %~1
chcp 866 1>nul

gora, Это я просто запутался и мне показалось, что она всегда перенаправляет в STDERR

fooger 27-07-2011 04:39 1720644

Foreigner, ОГРОМНОЕ СПАСИБО!!!
Все очень помогли

Спасибо еще раз!

Iska 05-04-2018 14:09 2807183

Цитата:

Цитата rsuan
а успешные выводятся на консоль и не попадают в файл. »

С чего бы это? «1>test.txt» (или просто «>test.txt») перенаправляет стандартный поток вывода в файл.

Цитата:

Цитата rsuan
Как сделать чтобы при любом раскладе попадало в файл? »

Вот так, как выше написано, и делать. Если у Вас что-то не попадает, начинайте излагать конкретные детали.


Время: 13:09.

Время: 13:09.
© OSzone.net 2001-