找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 87624|回复: 19

[其他] 求教深入浅出地解释句柄到底是什么

[复制链接]
发表于 2016-9-14 15:05:55 | 显示全部楼层 |阅读模式
请教达人,句柄到底是什么?对这个完全没概念。
怎样说能完全说清楚,一看就懂就明白。谢谢。
BTW,别扣分,搜过了,相关资料寥寥无几 orz
发表于 2016-9-14 16:40:28 | 显示全部楼层
你可以理解为
句柄1就是JJ,句柄2就是菊花
这是有一个普遍规则的,1出来的肯定是尿尿,2出来的肯定是翔
所以你使用句柄1一般是输出到小便池,而狗狗知道蹲在句柄2后面等待
发表于 2016-9-14 17:15:03 | 显示全部楼层
本帖最后由 523066680 于 2016-9-14 17:26 编辑

句柄1就是任,句柄2就是督。结合二楼的内容,那么打通任督二脉就是……

正经的,在某些脚本语言中,比如Perl,可以通过句柄操作对象,比如输出信息的句柄:STDOUT,输入的句柄:STDIN 。
例:
STDOUT->autoflush(1); #设置自动刷新缓冲
$getInput = <STDIN>;  #获取终端或者管道输入

还有一种是文件句柄,可以自己定义一个标示符作为句柄,
open WRT, ">", "book.txt";
print WRT "abc";
close WRT;             #关闭句柄

我暂时这么描述:带有某种操作权限/特征的标识符,通过对这个标示符可以间接的操作指定的对象,以及句柄可以被传递。

实际对应的英文单词是 HANDLE,我觉得叫“把柄”更合适吧,造句:“哥抓住了一个文件的把柄”,可能是听上去有点猥琐就叫句柄咯。
轻喷。

评分

参与人数 1技术 +1 收起 理由
Bella + 1 感谢分享

查看全部评分

发表于 2016-9-14 20:06:59 | 显示全部楼层
多看几遍:
http://bbs.bathome.net/thread-3296-1-1.html

如果哪天你找到“一看就懂”的文章,请给我分享一下
发表于 2016-9-14 21:25:38 | 显示全部楼层
往后学,自然就是理解了。
但是想每一个概念都想弄清楚再学其它东西是不太可能的。
发表于 2016-9-14 22:18:26 | 显示全部楼层
回复 2# zz100001


    好…好有道理,我竟无言以对。
发表于 2016-9-15 09:54:52 | 显示全部楼层
就是句柄1指导正确输出,句柄2指导错误的输出,nul为空
1>nul  为将正确的输出到空设备,也就是不显示
2>nul  为将错误的输出到空设备,就是不显示
 楼主| 发表于 2016-9-18 10:00:03 | 显示全部楼层
本帖最后由 lyonamstrong 于 2016-9-18 10:10 编辑

那请问
echoyes 2>1
结果是错误信息没有输出,是什么原因?
按道理2和1的指向都是con,为什么不能输出?

或者说这句echoyes 2>1有意义吗?
发表于 2016-9-18 10:29:34 | 显示全部楼层
回复 8# lyonamstrong


echoyes 既不是内部命令,也不是外部命令,没有意义。
 楼主| 发表于 2016-9-18 10:31:18 | 显示全部楼层
回复 9# DiamondbacK


这里写echoyes就是应该输出错误信息,那应该在句柄2,句柄2指向句柄1,只是想知道这样会产生什么结果。
发表于 2016-9-18 10:42:58 | 显示全部楼层
本帖最后由 DiamondbacK 于 2016-9-18 10:48 编辑

回复 10# lyonamstrong


2>1 的含义并不是将句柄 2 重定向到句柄 1,而是将句柄 2 重定向到文件 1。
type 1 就会看到你生成的这个文件名为 "1" 的文件的内容。
 楼主| 发表于 2016-9-18 11:57:56 | 显示全部楼层

Echo;>nul 3>a.txt

这句难道不是
输入空格到空设备,所以不回显
然后句柄3重定向到a.txt也就是生成了一个a.txt文件
但是由于句柄3是空
所以a.txt内容为空

为什么再次运行这行时显示The process cannot access the file because it is being used by another process.
打开a.txt里面有内容,显示的是当前所在目录
发表于 2016-9-18 12:23:02 | 显示全部楼层
回复 12# lyonamstrong

说明有其它程序或软件在占用a.txt,第一次运行后是不是没有退出?
 楼主| 发表于 2016-9-18 12:33:13 | 显示全部楼层
回复 13# pcl_test


    但是为啥a.txt中有输入D:\也就是当前目录呢?
发表于 2016-9-18 14:05:35 | 显示全部楼层
回复 14# lyonamstrong

把回显关了@echo off&Echo;>nul 3>a.txt
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:26 , Processed in 0.023584 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表