中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 00:47
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [原创]模拟命令行句柄操作(帮助理解句柄复制与备份)
可打印版本  1,030 / 5
第1楼 qzwqzw 发表于 2009-06-12 11:55
银牌会员 发帖 636 积分 2,343
[原创]模拟命令行句柄操作(帮助理解句柄复制与备份)
在自己对句柄操作的理解基础上
编写了以下句柄操作模拟代码
大家可以在cmd中挂参数多次运行模拟
看是否符合实际句柄操作后的结果

那么如何判断一个句柄的指向呢
echo 1<&要判定的句柄号 is con
如果显示 con ,那么句柄值为con
否则为nul或者文件


[ Last edited by qzwqzw on 2009-6-13 at 21:12 ]
第2楼 s11ss 发表于 2009-06-13 12:36
银牌会员 发帖 566 积分 2,098
那么如何判断一个句柄的指向呢
echo 1&要判定的句柄号 is con
如果显示 con ,那么句柄值为con
否则为nul或者文件


这一段话没看懂
第3楼 qzwqzw 发表于 2009-06-13 21:11
银牌会员 发帖 636 积分 2,343
更正个键误
echo 1&要判断的句柄号 is con
应该是
echo 1<&要判断的句柄号 is con

它等同于
echo is con 1<&句柄号

举例分析
1<&7

是把句柄7的指向复制给句柄1
而echo 的结果默认是用句柄1输出的
那么如果句柄7指向了con
复制给1后则1也指向con
那么echo的结果会输出在屏幕上
否则不会输出在屏幕上

当然这只是简单判断指向con与非con的办法
具体的办法还需自己再多做测试

[ Last edited by qzwqzw on 2009-6-13 at 21:14 ]
第4楼 s11ss 发表于 2009-06-14 04:32
银牌会员 发帖 566 积分 2,098
Originally posted by qzwqzw at 2009-6-13 09:11 PM:
更正个键误
echo 1&要判断的句柄号 is con
应该是
echo 1<&要判断的句柄号 is con

它等同于
echo is con 1<&句柄号

举例分析
1<&7

是 ...


<& 貌似 与 >& 是一样的,都是把后者句柄复制到前者句柄
第5楼 qzwqzw 发表于 2009-06-14 21:18
银牌会员 发帖 636 积分 2,343
现在发现 >& 与 <& 唯一的区别
就是左值的缺省值
>&的左值缺省值为1
<&的左值缺省值为0
表现出的效果就是在
echo. >nul 3>nul使句柄1为nul后
echo Hello Handle <&2 无输出
echo Hello Handle >&2 有输出
第6楼 s11ss 发表于 2009-06-14 23:11
银牌会员 发帖 566 积分 2,098
Originally posted by qzwqzw at 2009-6-14 09:18 PM:
现在发现 >& 与 <& 唯一的区别
就是左值的缺省值
>&的左值缺省值为1
<&的左值缺省值为0
表现出的效果就是在
echo. >nul 3>nul ...

hh ntcmds.chm::/redirection.htm

如果未定义句柄,则默认的 < 重定向输入操作符是 0,而默认的 > 重定向输出操作符是 1。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023