我们从前几课知道 ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求2、%批处理变量引导符 这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍)。 引用变量用%var%,调用程序外部参数用%1至%9等等 %0%1%2%3%4%5%6%7%8%9%*为命令行传递给批处理的参数 %0 批处理文件本身,包括完整的路径和扩展名 %1 第一个参数 %9 第九个参数 %* 从第一个参数开始的所有参数 参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。 例:最简单的复制文件自身的方法 copy %0 d:\\wind.bat 小技巧:添加行内注释 %注释内容%(可以用作行内注释,不能出现重定向符号和管道符号) 为什么这样呢?此时“注释内容”其实被当作变量,其值是空的,故只起注释作用,不过这种用法容易出现语法错误,一般不用。 3、> 重定向符 输出重定向命令 这个字符的意思是传递并且覆盖,他所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台) 在NT系列命令行中,重定向的作用范围由整个命令行转变为单个命令语句,受到了命令分隔符,&&,||和语句块的制约限制。 比如: 使用命令:echo hello >1.txt将建立文件1.txt,内容为”hello “(注意行尾有一空格) 使用命令:echo hello>1.txt将建立文件1.txt,内容为”hello“(注意行尾没有空格) 4、>>重定向符 输出重定向命令 这个符号的作用和>有点类似,但他们的区别是>>是传递并在文件的末尾追加,而>是覆盖 用法同上 同样拿1.txt做例子 使用命令: echo hello > 1.txt echo world >>1.txt 这时候1.txt 内容如下: hello world 5、<、>、<& 重定向符 这三个命令也是管道命令,但它们一般不常用,你只需要知道一下就ok了,当然如果想仔细研究的话,可以自己查一下资料。(本人已查过,网上也查不到相关资料) <,输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。 @echo off echo 2005-05-01>temp.txt date <temp.txt del temp.txt 这样就可以不等待输入直接修改当前日期 >,将一个句柄的输出写入到另一个句柄的输入中。 <,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。 常用句柄:0、1、2,未定义句柄:3—9 1>nul 表示禁止输出正确的信息 2>nul 表示禁止输出错误信息。 其中的1与2都是代表某个数据流输入输出的地址(NT CMD 称之为句柄,MSDOS称之为设备)。 句柄0:标准输入stdin,键盘输入 句柄1:标准输出stdout,输出到命令提示符窗口(console,代码为CON) 句柄2:标准错误stderr,输出到命令提示符窗口(console,代码为CON) 其中的stdin可被<重定向,stdout可被>、>>重定向。 我们已经知道读取文本中的内容可以用for命令,但如果只需要读取第一行用for命令就有点麻烦。简单的办法如下: @echo off set /p str=<%0 echo %str% pause 运行显示批处理文件自身的第一行:@echo off 6、|命令管道符 格式:第一条命令 | 第二条命令 [| 第三条命令...] 将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。 例如: dir c:\\|find \"txt\" 以上命令是:查找C:\\所有,并发现TXT字符串。 FIND的功能请用 FIND /? 自行查看 在不使format的自动格式化参数时,我是这样来自动格式化A盘的 echo y|format a: /s /q /v:system 用过format的都知道,再格盘时要输入y来确认是否格盘,这个命令前加上echo y并用|字符来将echo y的结果传给format命令 从而达到自动输入y的目的 (这条命令有危害性,测试时请慎重) 7、^转义 |