Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проблемы с конвейером

Ответить
Настройки темы
CMD/BAT - [решено] Проблемы с конвейером

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Создаем простой bat файл
dir >a.txt

Запускаем.
На экране расшифрованная команда dir 1>a.txt

Откуда взялась эта 1?
Проблема повторяется на разных машинах, Win 8 и Win 10

Dir >a.txt>b.txt
превращается в dir 1>b.txt

Поясните, откуда эта 1 и как с ней бороться.

Отправлено: 13:06, 16-02-2019

 
mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Georges, а если пробел после dir убрать, как это должно быть?

-------
Mikhail Zhilin


Отправлено: 13:56, 16-02-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2703
Благодарности: 1683

Профиль | Отправить PM | Цитировать


Georges, 1 это стандартный выходной поток STDOUT. По умолчанию вывод на консоль.
2 поток STDERR для вывода ошибок.
Вы перенаправляете вывод стандартного потока с консоли на файл.
Бороться с этим не имеет смысла и невозможно.
Цитата mwz:
а если пробел после dir убрать, как это должно быть? »
Не совсем понял, но пробел не при чем.
Цитата Georges:
Проблемы с конвейером »
Да и не конвейер это, а перенаправление вывода.
Я не понимаю, как работает конструкция Dir >a.txt>b.txt. Задумано как одновременный вывод команды в 2 файла? Невозможно, ИМХО.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 16-02-2019 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Georges:
Запускаем.
На экране расшифрованная команда dir 1>a.txt
Откуда взялась эта 1?
Проблема повторяется на разных машинах, Win 8 и Win 10

Поясните, откуда эта 1 и как с ней бороться.»
Это не проблема. Так и должно быть. «1» — номер одного из стандартных потоков, в данном случае — стандартного потока вывода, stdout. «Бороться» с ней не надо никак.

Update: Припоздал.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:21, 16-02-2019 | #4


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Это не проблема. Так и должно быть. «1» — номер одного из стандартных потоков, в данном случае — стандартного потока вывода, stdout. «Бороться» с ней не надо никак. »
То есть она на команду не влияет, а просто отображается?

Цитата megaloman:
Я не понимаю, как работает конструкция Dir >a.txt>b.txt. Задумано как одновременный вывод команды в 2 файла? Невозможно, ИМХО. »
Это условные примеры, тестировалось, когда возникает и когда не возникает эта единица. Одним из примеров был не менее абсурдный type >a.txt Рабочая гипотеза была в том, что cmd зачем-то заменяет > на 1>. Пример с Dir >a.txt>b.txt был направлен на то, чтобы выяснить, первая или вторая угловая скобка дополняется единицей. Тем не менее, результат тоже озадачил Сразу вспомнились Стругацкие с семиногим буридановым бараном без мозжечка.

Отправлено: 17:20, 16-02-2019 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата megaloman:
одновременный вывод команды в 2 файла? »
даже двух разных
Код: Выделить весь код
@echo off
>"1.txt" (>"2.txt" dir a|dir b)
pause

Отправлено: 18:29, 16-02-2019 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Georges:
То есть она на команду не влияет, а просто отображается? »
Она там подразумевается. То есть, если Вы не указали, опустили единицу при написании кода (а так все, как правило и делают), то она там неявно всё равно присутствует, что и отображается эхом при исполнении команды.

Цитата alpap:
даже двух разных »
alpap, имелась в виду невозможность одновременного перенаправления вывода одной команды в два файла зараз (без использования сторонних средств, наподобие tee.exe и т.п.).
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 16-02-2019 | #7


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Iska:
одновременного перенаправления »
я так понял что имеется ввиду ИМЕННО конкретно одной написанной команды, потому как ее можно написать три раза и расхождения по времени при выводе одной и той же команды в три разных файла я не вижу
Код: Выделить весь код
>"3.txt" (>"2.txt" (>"1.txt" (dir& echo %time%)|(dir& echo %time%))|(dir& echo %time%))

Последний раз редактировалось alpap, 17-02-2019 в 04:09.

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:46, 17-02-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


alpap, так-то да. Но если это какая-нибудь получасовая обработка видео?! Мы же не будем её гонять из-за этого три раза, да и не всегда возможно сие будет — если исходные данные одновременно являются и результирующими.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:09, 17-02-2019 | #9


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Iska, так понятнее.

Отправлено: 20:48, 17-02-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проблемы с конвейером

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - Seagate ST1500DL003 проблемы (пояснение проблемы) Pavlo84 Накопители (SSD, HDD, USB Flash) 10 23-08-2014 14:08
проблемы sacura haruno Поиск драйверов, прошивок и руководств 1 30-11-2012 18:18
Службы - проблемы с... orangecola Тест-форум 4 28-04-2012 09:43
Прочее - Проблемы с принтером! <определенно - проблемы с принтером> Serega33 Сетевое оборудование 1 07-05-2008 12:59
Проблемы с загрузкой Windows - проблемы с матплатой? Kaeru Непонятные проблемы с Железом 28 31-10-2007 20:33




 
Переход