Показать полную графическую версию : [решено] Результат выполнение комманды в файл
Здравствуйте. CMD/BAT знаю очень плохо.
Мне нужно результат команды запуска службы (net start), сохранить в файл.
Знаю что делается это так:
net start имя_службы > test.txt
Но это работает только в случае успешного выполнения команды.
Если служба уже запущенна, то CMD выведет "Затребованная служба уже запущенна", но это не будет сохранено в файл (по крайней мере у меня).
Как сделать так, чтобы результат выполнения команды в любом случае сохранялся в файл, даже если он неудачный?
Спасибо!
fooger, попробуйте так:net start имя_службы 1>test.txt 2>&1
Anonymоus
26-07-2011, 19:45
Net Start имя_службы >log.txt||Echo Служба уже запущена >log.txt
UPD: Не заметил, что gora уже ответил, в любом случае, работать будут оба варианта.
gora, Anonymоus, большое спасибо!
Теперь новый вопрос, а как исправить то, что оно в какой-то не понятной кодировке?
Получается вот что
‡*вॡ®ў****п б«г¦Ў* 㦥 §*ЇгйҐ**.
„«п ўл§®ў* ¤®Ї®«*ЁвҐ«м*®© бЇа*ўЄЁ **ЎҐаЁвҐ NET HELPMSG 2182.
в любом случае, работать будут оба варианта »
Не критики ради, а пользы для... В Вашем варианте при указании несуществующей службы будет выведено "Служба уже запущена" вместо "Неправильное имя службы." :)
оно в какой-то не понятной кодировке? »
В кодировке Кириллица DOS
Foreigner
26-07-2011, 19:58
А куда она отдает при успехе, в stdout или stderr?
net start имя_службы 1>&2 2>test.txt
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
Foreigner, ОГРОМНОЕ СПАСИБО!!!
Все очень помогли
Спасибо еще раз!
а успешные выводятся на консоль и не попадают в файл. »
С чего бы это? «1>test.txt» (или просто «>test.txt») перенаправляет стандартный поток вывода в файл.
Как сделать чтобы при любом раскладе попадало в файл? »
Вот так, как выше написано, и делать. Если у Вас что-то не попадает, начинайте излагать конкретные детали.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.