BAT批处理文件入门
@echo off 啥意思
1 @的作用是让执行窗口中不显示它后面这一行的命令本身也就是echo off 这几个单词。首行的@echo off中,@的作用就是让脚本在执行时不显示@后面的echo off部分。
2 echo 啥意思
echo是“回显”的意思。echo有两种状态:打开和关闭。也就是echo on 和echo off两个命令。如果直接执行echo命令将显示当前echo命令状态(off或on)。执行echo off将关闭回显,关闭回显则后面的所有命令都不显示命令本身,只显示执行后的结果,除非执行echo on命令。@命令和echo off命令联合起来,达到了两个目的:不显示echo off命令本身,不显示以后各行中的命令本身。总的来说,这个bat文件中所有命令都不显示;
2.2用echo显示信息
当执行echo Default BAT file name is START.BAT 的时候,Default BAT file name is START.BAT将在脚本执行 后的窗口中显示,而echo命令本身不显示。
3 ::
这个命令的作用很简单,它是注释命令,后面的内容在执行时不显示,也不起任何作用,因为它只是注释,只是增加了脚本的可读性。
4 pause
中文为“暂停”的意思。它的作用,是让当前程序进程暂停一下,并显示一行信息:请按任意键继续. . .。
5、goto和:
goto是个跳转命令,: 是一个标签。当程序运行到goto时,将自动跳转到:定义的部分去执行了。程序在运行到goto时就自动跳转到:标签定义的部分执行。如下例,goto usage之行的时候,就自动跳转到最后一行定义的:usage部分之行,结果是显示脚本usage(usage就是标签名称)。不难看出,goto命令就是根据这个冒号和标签名称来寻找它该跳转的地方,它们是一一对应的关系。goto命令也经常和if命令结合使用。
if "%1"=="" goto usage ::if input without paramater goto usage if "%1"=="/?" goto usage ::if paramater is "/?" goto usage if "%1"=="help" goto usage . . . :usage
goto命令的另一种用法一:提前结束程序。在程序中间使用goto命令跳转到某一标签,而这一标签的内容却定义为退出。
如:
…… goto end …… :end
6 %符号
6.1 变量的引用
@echo off set a=123 rem定义一个变量a 赋值为123 echo %a% rem显示出变量a的值(如果不加% %系统会把a当字符处理了,不会当成变量的)
6.2 %%i
%%i 这种变量是for 语句里面 特有的变量,还有一种是外部变量,接受外部参数的格式是%1 -%9 共9个变量;
只有在批处理里面才写 两个 %% 号表示变量,cmd中只用 一个 % 号。反正只要你在批处理文件里面用 for,变量就用 %%。例如
批处理中的写法
for %%i in (1 2 3 4 5 ) do echo %%i
为什么批处理中用两个 %%,其实是编译器编译的时候要屏蔽一个
在cmd窗口中写法
for %i in (1 2 3 4 5 ) do echo %i
现在说下外部变量,是系统制定的,只有9个,专门保存外部参数的,就是运行批处理时加的参数。只有 %1 %2 %3 %4 ...... %9
例如
@echo off echo %1 echo %2 echo %3 echo %4
将上面的代码复制到记事本。保存格式为 bat
现在怎样传递参数给这个批处理,如下
在开始>>运行 里面输入 cmd 确定
在弹出来的窗口中 输入 上面 批处理文件 的 完全路径名,然后就加要传递的参数了 例如 c: ext.bat aaaa bbbb cccc dddd eeeee
上面 aaaa bbbb cccc dddd eeeee
就是传递给 批处理 “参数”这些参数 会保存在 %1至 %9 这9个变量名,最多只能保存 9 个。运行下就知道了,上面批处理文件中 %1变量保存的是aaaa
%2 保存的是 bbbb
%3 保存的是 cccc
%4 保存的是 dddd
%5 是 eeee 上面没有用到 %5变量
参考信息:http://www.jb51.net/article/7131_all.htm
https://zhidao.baidu.com/question/133405123.html