猜测句柄 4~9 的初始值不是有效句柄
做了一个测试试图证明当初始句柄不是有效句柄时,产生的备份句柄会保留,却得到了奇怪的结果:
A、测试中 3 和 4 为备份句柄:
3=1,4=2
而结束备份后句柄 4 仍无效- echo test >nul 2>nul
- echo 无效句柄 1>&4 2>con
复制代码 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>con
复制代码
- echo test >nul 2>nul 3>con
- echo 变成句柄3(con) 1>&4 2>con
复制代码 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>con
复制代码 D、
这两个测试中 3、4、5 为备份句柄:
3=1,4=2,5=3
结束备份后句柄 4 变成 1 的原始状态- echo test >nul 3>nul 4>nul
- echo 正确 1>&4 2>con
复制代码 E、
这两个测试中 4、5 为备份句柄:
4=3,5=4
结束备份后句柄 4 仍是无效句柄- echo test 3>nul 4>nul
- echo 错误 1>&4 2>con
复制代码
|