cmd文件和bat文件的区别,从文件描述中的区别是,cmd文件叫做:Windows命令脚本,bat文件叫:批处理文件,两者都可以使用任意一款文本编辑器进行创建、编辑和修改,只是在cmd中支持的命令要多于bat。
批处理文件是一种没有什么固定格式的文件,他可以处理一条或者多条命令,文件的扩展名是:.cmd或者.bat,文本里面的每一行就是一条处理指令,双击运行它的时候,Windows就会调用cmd.exe去运行它。
1、指令:echo和@
@echo off 通常我们将这条指令写在我们批处理文件的第一行,因为有了这条指令之后,当我们在运行.bat的时候,就不会将文件里面的内容打印出来了,如果没有这句话,会先去将文件里面的内容打印在屏幕上
echo off 这条指令之后的内容不会被打印,但是这个指令会被打印
@ 某一条指令不想被打印,可以在前面加上@
2、指令:set
注意等号左边不能有空格,等号右边的空格会被当做字符串的一部分
set a=1
set wang=wang
使用set命令,我们可以设置变量,其中“a”和“string1”就是我们设置的变量,可以直接给设置的变量赋值。
当我们希望将设置的变量显示在屏幕的时候,需要在变量的前后带上“%”,然后使用echo命令将设置的变量进行回显:
echo %a%
echo %wang%
当我们需要输出空行的时候,使用:“echo.”,其中“.”必须紧跟在echo命令的后面,而且“.”也可以被,:;”/等任一的符号代替,这样我们就会输出一个空行,相当于敲了一个回车:
echo.
echo:
3、指令:REM 和 ::
这两条指令的作用是帮助我们进行指令的注释
REM 和 ::的区别:rem会被打印在屏幕上,::不会被打印在屏幕上
rem set a=1
::set b=2
4、指令:PAUSE
pause在指令中的作用是暂停,当我们需要在文件运行的中间让其暂停一下,看一下我们的输出,就会使用PAUSE命令,然后在控制台就会显示:“请按任意键以继续”,当我们按下任意键之后,文件就会继续运行了,当我们希望在屏幕上显示自己的语句的时候,可以这样写:
echo 其他提示语 & pause > nul
5、指令:title
使用这个指令来改变cmd窗口的名字
title 新标题名字_wang03
6、指令:start
作用:启动一个单独的窗口
以运行指定的程序或命令
当我们在cmd窗口输入:help start之后,然后回车,就会给我们弹出start命令的解析:
C:\Users\wang>help start
启动一个单独的窗口以运行指定的程序或命令。START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED][/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL][/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B][command/program] [parameters]"title" 在窗口标题栏中显示的标题。path 启动目录。B 启动应用程序,但不创建新窗口。应用程序已忽略 ^C 处理。除非应用程序启用 ^C 处理,否则 ^Break 是唯一可以中断该应用程序的方式。I 新的环境将是传递给 cmd.exe 的原始环境,而不是当前环境。MIN 以最小化方式启动窗口。MAX 以最大化方式启动窗口。SEPARATE 在单独的内存空间中启动 16 位 Windows 程序。SHARED 在共享内存空间中启动 16 位 Windows 程序。LOW 在 IDLE 优先级类中启动应用程序。NORMAL 在 NORMAL 优先级类中启动应用程序。HIGH 在 HIGH 优先级类中启动应用程序。REALTIME 在 REALTIME 优先级类中启动应用程序。ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。NODE 将首选非一致性内存结构(NUMA)节点指定为十进制整数。AFFINITY 将处理器关联掩码指定为十六进制数字。
请按任意键继续. . .
但是通常我们使用start命令很简单:strart “执行程序的绝对路径” “执行路径的参数”
或者我们可以将写好的批处理文件放在和要执行的程序同一个目录下面,这样我们就只需:start 程序名 程序参数
,这样调用就默认是在批处理文件的同级目录。
7、指令:call指令
如果你想在某一批处理程序中调用另外一个批处理文件,就是用call指令。
我们在相同文件夹下分别创建 main.bat、temp.bat
main.bat:
echo my name is main.bat
call temp.bat
pause
temp.bat:
echo my name is temp.bat
call 指令调用另外的批处理文件的时候,如果两个批处理文件没有在同一个文件里面,那么调用的文件就需要把他的路径加上,如果调用的批处理文件需要参数:call …\×××.bat 参数
8、脚本:在windows下.bat每隔周期时间运行一次python文件
::@echo off
set INTERVAL=5
timeout %INTERVAL%
:Again
echo Called python
python E:\Study\批处理\test.py
timeout %INTERVAL%
goto Again
同理可以每隔周期时间运行某个程序、服务、脚本等
@echo off
set INTERVAL=10
timeout %INTERVAL%
:Again
echo test
start /D "E:\Study\批处理" test01.bat
timeout %INTERVAL%
goto Again
9、脚本:获取文件夹下的所有文件名
https://blog.csdn.net/u013066730/article/details/96304949
dir /b > 1.txt
pause
更多指令: https://www.cnblogs.com/xpwi/p/9626959.html
https://blog.csdn.net/DY_1024/article/details/83094915
https://blog.csdn.net/wade3015/article/details/86139520