[win] Скрытие консоли с перенаправлением в лог (без буферизации)

feliks28

Как под виндой (XP MC причем желательно встроенными средствами, запускать ярлыком консольные приложения так, чтобы консоль не выводилась на экран, а весь вывод перенаправлялся в указанный файл лога, причем сразу же, а не по завершению работы приложения.

serg72

cmd /c команда > filename.log
(если это то, о чём я думаю).
А вот появляться там данные будут довольно нерегулярно. Но это - кэширование, от него никуда так просто не денешься...

feliks28

Ну да, я без кэширования имел в виду.

Ivan8209

Боюсь, что кеширование не предотвратить.
Надо выполнять действия от имени конкретного процесса.
---
...Я работаю антинаучным аферистом...

feliks28

Эмм, не очень понимаю
Стандартное виндовое >log.txt успешно перенаправляет стандартный вывод в файл, но пишет в файл как-то хитро с кешированием результатов.
А почему не может существовать реализации, чтобы в файл писалось сразу же?

Ivan8209

Потому что тебе нужно вызвать аналог set(v)buf.
Хотя... Можешь попробовать написать такое.
---
...Я работаю антинаучным аферистом...

serg72

Кстати, консоль таки будет появляться. Но пустая. Чтобы её спрятать, надо чуть побольше поизвращаться. Встроенными средствами вряд ли можно обойтись, но на 1,2 пишется прога (или на 1,2,3 скачивается из инета которая запускает этот самый cmd, а потом прячет консольное окно. Впрочем, если уж писать прогу, то можно попробовать и кэширование поотключать. Хотя есть подозрение, что это не так просто будет сделать (в смысле, что винда положит на твои просьбы не кэшировать).

Ivan8209

Посмотри по сообщениям тов. __No__ в "Программировании,"
он решал эту задачу.
---
...Я работаю антинаучным аферистом...

feliks28

Там вроде только про скрытие консоли освещается момент...
Оставить комментарий
Имя или ник:
Комментарий: