标题: [文本处理] 批处理文件中ctrl+p后按退格键的作用是什么? [打印本页]
作者: saint_Zuo 时间: 2012-1-17 11:01 标题: 批处理文件中ctrl+p后按退格键的作用是什么?
刚学了一日一学中的finstr,以下的程序中有太多不懂!
(1) set /p后面为什么直接加等号?那变量名到哪里去了?
(2) 在程序中 作用究竟是什么?教程中说在cmd的编辑模式下按ctrl+p后按退格键获得 。但我试了好像没效果?能否麻烦提供些专门总结此类特殊字符用法的教程?
(3) findstr /a:21 .* "批处理之家*"一句中的第一个参数与第二个参数中为什么都要加*呢?
(4) >"批处理之家" set /p= <nul 一句在执行时究竟是先处理>呢?还是先处理<呢?
(5) 总之这段代码要实现的目的与运行机制我实在不太理解,麻烦能详细解释一下。- >"批处理之家" set /p= <nul
- findstr /a:21 .* "批处理之家*"
- pause
复制代码
作者: find 时间: 2012-1-17 11:22
(1)这里面的变量名可有可无,你给它加上也不会错。
作者: ivor 时间: 2012-1-17 12:52
本帖最后由 ivor 于 2012-1-17 13:51 编辑
回复 1# saint_Zuo
cmd的编辑模式就是edit命令后的编辑器,Ctrl+P之后就会捕获一个控制键,然后另存为就可以了,其他的问题嘛,- >"批处理之家" set /p=<nul
-
- findstr /a:21 .* "批处理之家*"
-
- pause
复制代码
这段代码的解释,第一行的作用就是把BS控制键输出到"批处理之家"文件中,为什么加<NUL呢?NUL起到中止后面字符输入的作用,也就是不等待输入则执行下一个命令,因为<是把后面句柄的内容导入到前句柄。
第二行是搜索"批处理之家*"文件名,含有".*"(也就是全部文本)的文本内容,文件名显示白字绿背景
因为批处理文件中有BS控制键,所以输出的结果会把“文件名:文本”中的:删掉。但是文本只有BS控制键没效果。。。,BS控制键后面加个空格就可以了
作者: saint_Zuo 时间: 2012-1-17 15:58
本帖最后由 saint_Zuo 于 2012-1-17 16:03 编辑
回复 3# ivor
请问什么叫BS控制键呢?不懂概念!是不是这个方块字符呢(中间有一个圆的)?我是菜鸟,不好意思呀!
作者: ivor 时间: 2012-1-17 23:22
回复 4# saint_Zuo
BackSpace(退格键)缩写BS,如果是记事本打开的话,确实中间有个圆黑点
作者: CrLf 时间: 2012-1-17 23:32
本帖最后由 CrLf 于 2012-1-17 23:41 编辑
回复 4# saint_Zuo
退格符,ansi 码=8,属于控制字符(也叫不可见字符)的范畴,你按 backspace 键的时候其实就是发送了这玩意- set /p 可以不设变量名
- 请站内搜索退格符
- .* 代表匹配任何内容,而 XXX* 是表示对 XXX 为首的文件进行通配,findstr 仅在对文件名使用通配时才会同时显示文件名和搜索结果,也只有这个状态下的文件名受 /a 影响
- <是重定向给句柄0,>是重定向给句柄1,二者可以共存,所以无所谓谁先谁后。其实无论你把句柄重定向放在哪里,cmd 都会在预处理后把它们统一置于句末。
- 这段代码的用途...楼主试试就明白啦
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |