2016-03-21 3 views
0

Так что я писал пакетный скрипт (который я делаю очень редко).Как подавить сообщения от типа в пакетном скрипте?

Я хочу подавить все, что не явным образом echo.

За все до сих пор, используя

>nul 2>&1

работает, чтобы подавить сообщения от stderr и stdout.

Однако, когда я пытаюсь применить тот же принцип к type, команда не выполняет ...

type header.tmp geo.tmp > geo.txt

это команда, которую я хотел бы, чтобы подавить.

Любые идеи?

+0

Можно даже перенаправить весь блок кода '' nul' как> NUL 2> & 1 (...) ', а затем явно перенаправить каждый намеченный вывод в этом блоке на'> con' ... – aschipfl

ответ

3

Я думаю, вы пытаетесь помешать ему показывать имена файлов. Вы можете сделать это с помощью

type header.tmp geo.tmp > geo.txt 2>nul 

, как тип отправляет имена файлов при получении нескольких файлов на вывод ошибок, 2>

+0

Это именно то, что я искал. Думаю, мне следовало бы узнать, что эти вещи действительно подавляют, прежде чем двигаться дальше, но большое спасибо за ваш ответ. –

+0

@AndersHokinson Чтобы узнать больше о командах перенаправления/подавления, посмотрите [this] (http://ss64.com/nt/syntax-redirection.html) –

0

Я обычно подавляет эхо с самого начала серийного сценария с ...

@echo off 

Включение его обратно в конце с ...

@echo on 

А во время исполнения сценарий, я тогда только отгоняю то, что я хочу повторить относительно его выполнения. Выполнение этого позволяет вам отправлять все в NUL. Хотя вам все равно придется перенаправить вывод std или err-выход определенных команд в nul, например, в случае команды type.

+0

echo on/off используется для отображения/скрытия команд, которые выполняются, а не для отображения/скрытия фактического вывод этих команд, см. в разделе [Перенаправление команд] (http://ss64.com/nt/syntax-redirection.html) –

+0

Да. В точку. Затем ему нужно только направить вывод команд, которые он хочет видеть, а не видеть все остальные вещи. Такие, как отправка ошибочного вывода типа в nul. Я обновил свой ответ, чтобы сделать это более ясным. – ManoDestra

+2

@echo off ** не перенаправляет вывод. ** Он предотвращает отображение команд в cmd **, но не выход **. Например, 'echo hello' будет по-прежнему показывать' hello' в cmd, но не 'C:> echo hello' линию над ним. Тем не менее, 'echo hello> nul' не будет отображать' hello' на выходе –

Смежные вопросы