【转】简单批处理命令

www.gaojiawei.com/blog

hydralisk

【一】

         好久没写东西了,白牛准备apio的时候用到了批处理命令,感觉挺好玩,于是就找来东西看看。这个被学oi亲切地称作“对拍”,因为写起来方便,又能批量 地对比程序的结果,在noi中广泛应用。当然有些牛noip中闲极无聊也用批处理玩玩。

(由于找到的参考资料作者是匿名的,无法感谢,网址也忘了,囧)

大家讲命令都是以echo命令开始我也这么着写吧。

1.echo就像Pascal里面的write,c里面的printf,c++里面的cout,java里面的println()之类的。

  还是举例说明,新建*.bat,然后右键->编辑(E),打进去

   @echo This is www.gaojiawei.com

   @pause

运行出结果。这个pause就有点类似于程序中的断点,暂停下来。@的作用是不显示命令本身,想知道结果的话可以去掉试试。每句都打@得麻烦死人, 用echo off 命令关掉回显功能。当然,你要是看echo off 本身这句命令也不顺眼,在他前面加上@就行了。如果不想看那个按任意键继续那就 改成这个命令 pause>nul 不显示执行信息。

   echo. 是打出个空行,把. 换成 , : ; ” / / [] 都行。 

2.goto命令就是个大高级程序都不推荐使用的那个东西,在这里倒不是那么不受欢迎。语法都没变,怪不容易的。goto label (对了,谁 知到lable和label的有啥区别)

@echo off

goto bye

echo What are you looking for?

:bye

echo So long,farewell.Time to say goodbye.

pause

这个一看就明白。 

3.提到goto就不得不提到call命令。call就是大家熟悉的类似子程序,过程函数的调用,调用完了还回来。批处理的call既可以本程序里 面来回调用label也可以调用外部批处理文件。这个倒蛮方便,看例子:

@echo off

echo I am boy1!

call :boy2

echo time to say goodbye!&pause

:boy2

    echo I am boy2

:boy3

    echo Am I boy3?

pause

输出显示

I am boy1!

I am boy2

Am I boy3?

请按任意键继续. . . 

time to say goodbye!

请按任意键继续. . . 

I am boy2

Am I boy3?

请按任意键继续. . . 

这个意思很明显就是调用完以后回来原来的地方。而把call换成goto的话,

结果是:

I am boy1!

I am boy2

Am I boy3?

请按任意键继续. . . 

goto就不跳回原来程序了,这样容易打乱程序流程,也是都禁用goto的原因。不过goto这里并不是一点用也没有,比如 goto end提前 结束程序到不错。

外部调用批处理命令是这么用

call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]

指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。

比方一个bat这么写:

@echo off

call d:/aa.bat

另一个

@echo woshinidaye > a.txt

那么运行第一个就在第一个文件的目录下生成一个a.txt…里面写着…

>是相当于rewrite从写,>>相当于append,就是在文件末尾追加。

    4.一旦程序时间长了,自己也容易忘,在大量吃忘不了以后仍然记不住某些程序段的意思的话,可以考虑用注释(汗!)-_-||

     rem 命令是注释,这个不用多说,注释写起来也算到工作量里面,可以多挣些钱。一行代码两行注释…然后咣叽咣叽数钞票。(据说小说家古 龙这么干过,

    风。

    风吹。

    冷风吹。

六个字三行,当时有人觉着很酷,佩服得五体投地,简直太牛了,后来才知道台湾小说家不按字数,按行算稿费的-_-||)不说废话了,例子:

@Rem One of the quickest way to get money.

5.start命令。调用外部程序,不仅限于bat或者cmd扩展名的文件(call只能调用这两种)我怎么感觉直接写个文件名也能调用,对拍的时 候就没用start….

    START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]

      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]

      [/WAIT] [/B] [command/program]

      [parameters]

这个看着真麻烦…还是举例子:

@echo off

start explorer.exe ”e:/” 

这个作用就是打开e盘。这个system32的程序好像可以直接运行。 

@echo off

start ”" ”C:/WINDOWS/system32/calc.exe”

打开计算器。前面的空引号是title,也就是显示的标题名字。后面才是路径。当然 start calc 也可以弄出来这个东西。 

再比如有个key.exe的程序,还有个input.in的文件

Key <input.in >output.out

这样也能直接输入输出。

6.choice命令xp里面没有了。用set /p var= 来建立一个变量,然后根据输入值来分开情况。这个例子放到以后跟别的一起弄。

7.经典的if命令。三种格式,不像现在的就一种。

     ①if ”参数”==”字符串” 待执行命令

       例: if ”%1″==”a” format a: 

     ②if exist 文件名 待执行命令

       例: if exist config.sys edit config.sys 

     ③if (not)errorlevel 数字 待执行命令

       例: if errorlevel 2 goto again

这个是对拍常用的,通过对比程序,返回errorlevel,看结果一致不,不一致考场上可有的忙了。一致了偷着乐吧… 更多用法以后举例子。 

         慢慢写不着急,一下子写多了不好消化,往后还有强大的for,还有参数以及组合命令,特殊符号…字符串也算上吧…看这个有什么用呢,估计和名字比较像,批 量么,就是完成大量重复的工作,当然,仅仅当成兴趣玩也行。

现在操作系统都傻瓜化了,用命令行一些的人也少了,现在学一点可以加深同学对你的仰视-_-||看起来酷酷的,像黑客?但其实你也知道没啥了,骗小 孩玩的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值