Пакетный скрипт для выполнения терминальной команды
Я новичок в сценарии Bacth пытаюсь выполнить следующую терминальную команду, используя командный файл
"C:\Program Files\dark\dark" -z "lip" -Z doc > sample.doc
Следующая команда выводит некоторые данные в качестве образца документа.
пока я запускаю командный файл, получаю команду как "C:\Program Files\dark\dark" -z "lip" -Z doc 1>sample.doc
1 добавляется перед >
знак. Есть ли способ избежать этого?
1 ответ
Существует набор потоков данных, связанных с каждым консольным сеансом / командой / пакетным сценарием, и каждый поток имеет номер: 0 = stdin
, 1 = stdout
, 2 = stderr
, Стандартный поток вывода номер 1, поэтому
command > file == command 1> file
обе команды эквивалентны, что означает: "выполнить команду и перенаправить stdout
"Поток команды в файл". Второй - просто более явный, и это то, что вы видите, когда echo
не отключен, и пакетный анализатор выводит команду, которая будет выполнена. Вы также можете попробовать написать это как
>file command
и результирующая команда, отображаемая на консоли, будет такой же. Парсер выполняет свою работу и повторяет полученную команду.
Таким образом, вы можете увидеть команду или скрыть ее с
@command > file
или же
@echo off
command > file
но выполненная команда будет такой же.