为什么不从stdin读取Windows Shell(cmd.exe)内置命令?

时间:2016-06-14 06:11:27

标签: batch-file cmd command-prompt windows-shell

为什么不从stdin读取Windows Shell(cmd.exe)内置命令? (或者看起来似乎)

示例:

echo bar | set /p foo=

1 个答案:

答案 0 :(得分:2)

SET / P确实从管道中读取输入,但它没有任何好处,因为管道的两端都在新的cmd.exe进程中执行。因此,一旦管道子进程终止,新定义的变量就会丢失。

有关详细信息,请参阅堆栈溢出问题的the selected answer - Why does delayed expansion fail when inside a piped block of code?