2016-06-14 1 views
0

Почему Windows Shell (cmd.exe) не работает со встроенными командами из stdin? (Или так кажется)Почему команды Windows Shell (cmd.exe) не считываются из stdin?

Пример:

echo bar | set /p foo= 
+1

'установить/p' сам по себе _does_ читать из стандартного ввода. В этом примере он получает доступ к каналам. – SomethingDark

+1

См. [Этот ответ] (http://stackoverflow.com/questions/8192318/why-does-delayed-expansion-fail-when-inside-a-piped-block-of-code/8193124#8193124), а затем , вся тема ... – Aacini

ответ

2

SET/P делает читать входные данные из трубы, но он не делает ничего хорошего, потому что обе стороны трубы выполняются в новом CMD. exe. Таким образом, новая определяемая переменная теряется после завершения подпроцессов трубопровода.

Для получения дополнительной информации см the selected answer на вопрос переполнения стека - Why does delayed expansion fail when inside a piped block of code?

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

  • Нет связанных вопросов^_^