Warum schreibt der COPY-Befehl der Windows-Eingabeaufforderung Fehlermeldungen in STDOUT und nicht in STDERR?

Warum schreibt der COPY-Befehl der Windows-Eingabeaufforderung Fehlermeldungen in STDOUT und nicht in STDERR?

Wenn Sie versuchen, eine nicht vorhandene Datei zu kopieren, erhalten Sie normalerweise eine Fehlermeldung:

C:\temp>copy foo bar
The system cannot find the file specified.

Ich würde erwarten, dass die Fehlermeldung in STDERR geschrieben wird, aber sie scheint in STDOUT geschrieben zu werden:

C:\temp>copy foo bar >out

C:\temp>dir

 Directory of C:\temp

23/09/2019  16:18                44 out
               1 File(s)             44 bytes
               0 Dir(s)  885,229,346,816 bytes free

C:\temp>type out
The system cannot find the file specified.

Dasselbe passiert anscheinend, wenn Sie STDERR getrennt von STDOUT umleiten

C:\temp>del out

C:\temp>copy foo bar 2>err >out

C:\temp>dir

 Directory of C:\temp

23/09/2019  16:10                 0 err
23/09/2019  16:10                44 out
               2 File(s)             44 bytes
               0 Dir(s)  885,226,635,264 bytes free

C:\temp>type out
The system cannot find the file specified.

Ich verwende Windows 10

C:\temp>ver

Microsoft Windows [Version 10.0.18362.356]

Warum schreibt COPY keine Fehlermeldungen nach STDERR? Wo ist dieses Verhalten dokumentiert?

verwandte Informationen