为什么不从stdin读取Windows Shell(cmd.exe)内置命令? (或者看起来似乎)
示例:
echo bar | set /p foo=
答案 0 :(得分:2)
SET / P确实从管道中读取输入,但它没有任何好处,因为管道的两端都在新的cmd.exe进程中执行。因此,一旦管道子进程终止,新定义的变量就会丢失。
有关详细信息,请参阅堆栈溢出问题的the selected answer - Why does delayed expansion fail when inside a piped block of code?