Войти

Показать полную графическую версию : [решено] Результат выполнение комманды в файл


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

gora
26-07-2011, 19:43
fooger, попробуйте так:net start имя_службы 1>test.txt 2>&1

Anonymоus
26-07-2011, 19:45
Net Start имя_службы >log.txt||Echo Служба уже запущена >log.txt


UPD: Не заметил, что gora уже ответил, в любом случае, работать будут оба варианта.

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

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

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

gora
26-07-2011, 19:54
в любом случае, работать будут оба варианта »
Не критики ради, а пользы для... В Вашем варианте при указании несуществующей службы будет выведено "Служба уже запущена" вместо "Неправильное имя службы." :)

оно в какой-то не понятной кодировке? »
В кодировке Кириллица DOS

Foreigner
26-07-2011, 19:58
А куда она отдает при успехе, в stdout или stderr?

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

gora
26-07-2011, 20:09
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
Теперь новый вопрос, а как исправить то, что оно в какой-то не понятной кодировке? »

@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
Foreigner, ОГРОМНОЕ СПАСИБО!!!
Все очень помогли

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

Iska
05-04-2018, 14:09
а успешные выводятся на консоль и не попадают в файл. »
С чего бы это? «1>test.txt» (или просто «>test.txt») перенаправляет стандартный поток вывода в файл.

Как сделать чтобы при любом раскладе попадало в файл? »
Вот так, как выше написано, и делать. Если у Вас что-то не попадает, начинайте излагать конкретные детали.




© OSzone.net 2001-2012