首先说一下cmd文件和bat文件的区别,从文件描述中的区别是,cmd文件叫做:Windows命令脚本,bat文件叫:批处理文件,两者都可以使用任意一款文本编辑器进行创建、编辑和修改,只是在cmd中支持的命令要多于bat。
批处理文件是一种没有什么固定格式的文件,他可以处理一条或者多条命令,文件的扩展名是:.cmd或者.bat,文本里面的每一行就是一条处理指令,双击运行它的时候,Windows就会调用cmd.exe去运行它。
@echo off
通常我们将这条指令写在我们批处理文件的第一行,因为有了这条指令之后,当我们在运行.bat的时候,就不会将文件里面的内容打印出来了,如果没有这句话,会先去将文件里面的内容打印在屏幕上,通常我们是不希望使用者了解里面的代码结构的.
set a=1
set string1=abcdefg
使用set命令,我们可以设置变量,其中“a”和“string1”就是我们设置的变量,可以直接给设置的变量赋值。
当我们希望将设置的变量显示在屏幕的时候,需要在变量的前后带上“%”,然后使用echo命令将设置的变量进行回显。
如下:
echo %a%
echo %string1%
当我们需要输出空行的时候,使用:“echo.”,其中“.”必须紧跟在echo命令的后面,而且“.”也可以被,:;”/等任一的符号代替,这样我们就会输出一个空行,相当于敲了一个回车。
这两条指令的作用是帮助我们进行指令的注释,类似于C++中的:“/**/”和“//”
REM set a=1
::set string1=abcdefg
pause在指令中的作用是暂停,当我们需要在文件运行的中间让其暂停一下,看一下我们的输出,就会使用PAUSE命令,然后在控制台就会显示:“请按任意键以继续”,当我们按下任意键之后,文件就会继续运行了,当我们希望在屏幕上显示自己的语句的时候,可以这样写:
echo 其他提示语 & pause > nul
这样在屏幕显示的就是我们自己设置的提示语了。
通常程序执行之后会有一个返回值,来标志这次程序执行的结果,一般默认值为0,程序执行错误的时候会设置成:1.
使用:echo %errorlevel%来显示上一句指令的返回值。
使用这个指令来改变cmd窗口的名字,个人感觉作用不大。
::使用之后就会显示新的标题框了
title 新标题
作用:启动一个单独的窗口以运行指定的程序或命令
当我们在cmd窗口输入:help start之后,然后回车,就会给我们弹出start命令的解析:
但是通常我们使用start命令很简单:strart “执行程序的绝对路径” “执行路径的参数”
或者我们可以将写好的批处理文件放在和要执行的程序同一个目录下面,这样我们就只需:start 程序名 程序参数,这样调用就默认是在批处理文件的同级目录。
assoc:设置文件扩展名的关联,关联到文件类型
ftypr:设置文件类型的关联,关联到执行程序和参数
解释:当我们打开一个.txt后缀的文件,系统不是根据.txt判断,打开这个程序应该用notepad.exe打开,而是先去根据.txt来判断这个文件属于txtfile这种文件类型,然后再根据txtfile这种文件类型关联的对象是:txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1,然后再用notepad.exe打开txt文件。
我们可以使用命令:assoc 来显示文件夹中所有的文件关联到的文件类型
可以使用命令: assoc.txt 来显示文件夹中.txt文件所关联的文件类型,输出:.txt=txtfile
可以使用命令: assoc.exe 来显示文件夹中.exe文件所关联的文件类型,输出:.exe=exefile
我们可以使用命令:ftype 来显示文件夹中所有文件类型关联的执行程序
可以使用命令: ftype txtfile 来显示文件夹中txtfile类型的文件打开使用的是什么程序,
输出:txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
可以使用命令: ftype exefile 来显示文件夹中exefile类型的文件关联的是什么执行程序
输出:exefile="%1" %*
如果你想在某一批处理程序中调用另外一个批处理文件,就是用call指令。
现在我们在E:\根目录建立Temp.bat,内容如下:
echo off
echo this is Temp.bat
在E:\资料目录下建立Zzzmain.bat,内容如下:
echo off
call E:\Temp.bat
echo this is Zzzmain.bat
pause
当我们运行Zzzmain.bat的时候就会显示:
call 指令调用另外的批处理文件的时候,如果两个批处理文件没有在同一个文件里面,那么调用的文件就需要把他的路径加上,如果调用的批处理文件需要参数:call ..\..\×××.bat 参数
显示或者更改文件属性
例子:attrib +a +s +h Temp
上面的命令将文件夹Temp属性设为存档、系统、隐藏属性,这条命令是在Temp文件夹的所在路径运行的,但是如果没有在Temp路径的话,就需要加上Temp的路径了。
这是一些常用的指令,之后还会介绍一些其他的有关操作,比如:字符串操作和流程控制之类的相关内容。