猜测句柄 4~9 的初始值不是有效句柄
做了一个测试试图证明当初始句柄不是有效句柄时,产生的备份句柄会保留,却得到了奇怪的结果:
A、测试中 3 和 4 为备份句柄:
3=1,4=2
而结束备份后句柄 4 仍无效 | echo test >nul 2>nul | | echo 无效句柄 1>&4 2>conCOPY |
B、
测试中 3、4、5 为备份句柄:
3=1,4=2,5=3
结束备份后句柄 4 变成 3 所备份的状态 | echo test >nul 2>nul 3>nul | | echo 变成句柄3(nul) 1>&4 2>conCOPY |
| echo test >nul 2>nul 3>con | | echo 变成句柄3(con) 1>&4 2>conCOPY |
C、
测试中 3、4、5 为备份句柄:
3=1,4=2,5=3
结束备份后句柄 4 变成 nul
既不是 3 也不是 2,违背测试 C 体现的规律 | echo test >nul 2>&1 3>&1 | | echo 变成 nul 1>&4 2>conCOPY |
D、
这两个测试中 3、4、5 为备份句柄:
3=1,4=2,5=3
结束备份后句柄 4 变成 1 的原始状态 | echo test >nul 3>nul 4>nul | | echo 正确 1>&4 2>conCOPY |
E、
这两个测试中 4、5 为备份句柄:
4=3,5=4
结束备份后句柄 4 仍是无效句柄 | echo test 3>nul 4>nul | | echo 错误 1>&4 2>conCOPY |
|