В bash
, с
exec >file
весь вывод из stdout будет перенаправлен.
Есть ли эквивалентность в windows cmd.exe
?
== PS ==
Зачем это нужно?
В нашем приложении, где требуется поддержка встроенной оболочки (cmd.exe на windows), добиться лучших результатов Поддержка текстового поиска, мы решили отделить выполнение команд от вывода вывода.
В bash мы использовали exec >file
, чтобы добиться того, что работает без проблем. Но моего опыта работы с cmd недостаточно, чтобы найти эквивалентную команду в windows.
== EDIT ==
, чтобы уточнить, что exec >file
делает в bash
после exec >file
в bash, дескриптор файла 1, т.е. его стандартный вывод перенаправляется на file
. который отличается от mycommand >file
.
В первом случае stdout самой оболочки перенаправляется, stdout любой команды, выполняющейся внутри нее, технически не перенаправляется, но, поскольку это дочерний процесс оболочки, stdout наследуется , таким образом, запустите ls
после того, как exec >file
, вывод ls
запишет в `file.
В последнем случае stdout самой оболочки не изменился, перенаправляется только stdout дочернего процесса (через shell, его родительский процесс).
Итак, я спрашиваю, как перенаправить стандартный вывод cmd.exe
, а затем использовать cmd.exe
в обычном режиме, как обычно, кроме cmd.exe
ничего не записывать в консоль, все выходная запись в файл.
Таким образом, следующие подходы не то, что я преследую
dir >file
wrap_several_command_to_batch_file >file
wrap_several_command_to_batch_file_and_redirect_inside_then_exit