2016-06-14 37 views
0

Windowsシェル(cmd.exe)の組み込みコマンドがstdinから読み込まれないのはなぜですか? (あるいはそれはそう)Windowsシェル(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?

関連する問題