[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理文件中ctrl+p后按退格键的作用是什么?

刚学了一日一学中的finstr,以下的程序中有太多不懂!
(1)        set /p后面为什么直接加等号?那变量名到哪里去了?
(2)        在程序中 作用究竟是什么?教程中说在cmd的编辑模式下按ctrl+p后按退格键获得 。但我试了好像没效果?能否麻烦提供些专门总结此类特殊字符用法的教程?
(3)        findstr /a:21 .* "批处理之家*"一句中的第一个参数与第二个参数中为什么都要加*呢?
(4)        >"批处理之家" set /p= <nul  一句在执行时究竟是先处理>呢?还是先处理<呢?
(5)        总之这段代码要实现的目的与运行机制我实在不太理解,麻烦能详细解释一下。
  1. >"批处理之家" set /p= <nul
  2. findstr /a:21 .* "批处理之家*"
  3. pause
复制代码

(1)这里面的变量名可有可无,你给它加上也不会错。

TOP

本帖最后由 ivor 于 2012-1-17 13:51 编辑

回复 1# saint_Zuo


    cmd的编辑模式就是edit命令后的编辑器,Ctrl+P之后就会捕获一个控制键,然后另存为就可以了,其他的问题嘛,
  1. >"批处理之家" set /p=<nul
  2. findstr /a:21 .* "批处理之家*"
  3. pause
复制代码
这段代码的解释,第一行的作用就是把BS控制键输出到"批处理之家"文件中,为什么加<NUL呢?NUL起到中止后面字符输入的作用,也就是不等待输入则执行下一个命令,因为<是把后面句柄的内容导入到前句柄。

第二行是搜索"批处理之家*"文件名,含有".*"(也就是全部文本)的文本内容,文件名显示白字绿背景

因为批处理文件中有BS控制键,所以输出的结果会把“文件名:文本”中的:删掉。但是文本只有BS控制键没效果。。。,BS控制键后面加个空格就可以了

TOP

本帖最后由 saint_Zuo 于 2012-1-17 16:03 编辑

回复 3# ivor
请问什么叫BS控制键呢?不懂概念!是不是这个方块字符呢(中间有一个圆的)?我是菜鸟,不好意思呀!

TOP

回复 4# saint_Zuo


    BackSpace(退格键)缩写BS,如果是记事本打开的话,确实中间有个圆黑点

TOP

本帖最后由 CrLf 于 2012-1-17 23:41 编辑

回复 4# saint_Zuo


    退格符,ansi 码=8,属于控制字符(也叫不可见字符)的范畴,你按 backspace 键的时候其实就是发送了这玩意
  1. set /p 可以不设变量名
  2. 请站内搜索退格符
  3. .* 代表匹配任何内容,而 XXX* 是表示对 XXX 为首的文件进行通配,findstr 仅在对文件名使用通配时才会同时显示文件名和搜索结果,也只有这个状态下的文件名受 /a 影响
  4. <是重定向给句柄0,>是重定向给句柄1,二者可以共存,所以无所谓谁先谁后。其实无论你把句柄重定向放在哪里,cmd 都会在预处理后把它们统一置于句末。
  5. 这段代码的用途...楼主试试就明白啦
复制代码

TOP

返回列表