OT: ^ in redirection (windows)

Duncan Booth duncan.booth at invalid.invalid
Mon Jul 4 09:07:02 EDT 2005


Miki Tebeka wrote:

> Can someone explain me the difference between:
>     echo 1 > 1.txt 2>&1
> and
>     echo 1 > 1.txt 2>^&1
> 
> (Windows XP "cmd" shell)
> 
> Both produce 1.txt with the content 1.
> 
> (Sadly, I don't know how to search for ^ in google).
> 

The first of these joins stderr to stdout, but since there is no output to 
stderr has no visible effect.

The second should prevent special treatment of the & character, but in this 
particular case actually has no effect.

You can see the effects more clearly if you redirect a handle which 
actually does have some output:

stdout redirected to stderr, but stderr still goes to console so no visible 
effect:

C:\temp>echo hi 1>&2
hi

stdout redirected to stderr, then stderr redirected to a file, but stdout 
still points at original stderr so no visible effect:

C:\temp>echo hi 1>&2 2>x.txt
hi

stderr redirected to a file, then stdout redirected to same file. Output 
goes in a file:
C:\temp>echo hi 2>x.txt 1>&2

C:\temp>type x.txt
hi

Same as above. Using ^ to avoid special interpretation of the & has no 
effect:
C:\temp>echo hi 2>x.txt 1>^&2

C:\temp>type x.txt
hi




More information about the Python-list mailing list