![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 22:03 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 对于英雄关于重定向程序的理解? |
| 可打印版本 665 / 2 |
| 第1楼 tempuser | 发表于 2008-12-16 11:31 |
| 高级用户 发帖 261 积分 547 | |
|
对于英雄关于重定向程序的理解? 这是我学习英雄以下程序的理解,不知对不对!
@echo off echo 英雄是好男人!!! rem 此时,默认的1指向con,3~9指向为空 echo. 1>nul 3>nul rem 因要修改1的指向为nul,所以要对它的原有指向con备份,所以将1的原con rem 指向备份到3,即3指向是con rem 而要运行3>nul,即即3指向是con也要备份到4,即4的指向变成了con rem 执行完毕,3指向为nul,它是1原指向的备份,1从3取回备份的指向1>nul rem 3从4中取回被份指向即3>con echo 英雄是白痴!!! echo 英雄是傻逼!!! Rem 1>nul所以输出到nul,信息就不显示了 echo 这是怎么回事,难道就不能骂骂英雄吗??? 1>con 4>con rem 要将1的指向改为con,就要对原有的句柄指向1>nul备份 rem 此时3>con非空,1的nul指向就备份到4,即4>nul rem 而要运行4>con,所以又将4>nul备份到5即5>nul rem 执行完毕后,4>con,所以1取回的句柄指向备份是con即1>con ren 因为1>con所以echo信息正常输出 总结:这里我觉得难以理解的是 “进行取回原有句柄指向备份的过程”比如这个程序,如 果是取回,那么4先取回呢?则4从5>nul取回就变成了4>nul,这时1在从4取回备 份的指向,不就变成了1>nul?那么echo信息不就输出到空设备了吗? 所以我觉得这时就应该硬性理解“谁的优先级高,谁先进行取回原有句柄指向的操作”。 这里,我理解0~2比3~9的优先级高。 所以先进行1的句柄指向备份取回,此刻,4没有进行取回操作,还是4>con,那么1 从4中取回备份自然就是1>con,echo也自然输出的信息。 pause 注意,修改句柄代号指向前要对原来的句柄代号指向进行备份,并且只能将原句柄代 号指向备份到句柄指向为空的数字标号里,执行完毕后要从备份中取回句柄指向。 |
|
| 第2楼 xzyx | 发表于 2008-12-16 12:48 |
| 初级用户 发帖 19 积分 50 | |
|
谁先变谁先取回,这里相当于队列而非堆栈。
|
|
| 第3楼 linge | 发表于 2008-12-16 13:41 |
| 新手上路 发帖 10 积分 11 | |
|
没看明白,
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |