Почему Windows Shell (cmd.exe) не работает со встроенными командами из stdin? (Или так кажется)Почему команды Windows Shell (cmd.exe) не считываются из stdin?
Пример:
echo bar | set /p foo=
Почему Windows Shell (cmd.exe) не работает со встроенными командами из stdin? (Или так кажется)Почему команды Windows Shell (cmd.exe) не считываются из stdin?
Пример:
echo bar | set /p foo=
SET/P делает читать входные данные из трубы, но он не делает ничего хорошего, потому что обе стороны трубы выполняются в новом CMD. exe. Таким образом, новая определяемая переменная теряется после завершения подпроцессов трубопровода.
Для получения дополнительной информации см the selected answer на вопрос переполнения стека - Why does delayed expansion fail when inside a piped block of code?
'установить/p' сам по себе _does_ читать из стандартного ввода. В этом примере он получает доступ к каналам. – SomethingDark
См. [Этот ответ] (http://stackoverflow.com/questions/8192318/why-does-delayed-expansion-fail-when-inside-a-piped-block-of-code/8193124#8193124), а затем , вся тема ... – Aacini