bat脚本编写

因项目中多处使用bat脚本编译打包库文件,而自己对bat脚本一无所知,故在此做一记录,后续逐渐完善。
1、echo,echo on,echo off,@相关命令

echo [描述信息]:表示在dos界面显示[]中的描述信息
echo on:表示在此语句之后的所有命令在执行时都显示命令本身
echo off:与echo on相反,表示在此语句之后的所有命令不显示命令本身,静默执行
@echo off:表示不显示本条语句,加在本行最开始处,只能影响单行命令
echo=:输出空白行,类似于C中的换行printf("\n");

2、rem,::,:+注释命令

rem [注释信息]:表示该内容为注释,与其他语言中的//,/**/注释类似
:: [注释信息]:也表示内容为注释
:+ [注释信息]:也可表示注释
区别是:当用echo on打开后只有rem注释的内容可以回显,后两者均不会回显

3、pause暂停命令

pause:一般在脚本末尾处,屏幕会显示“请按任意键继续...”的字样
pause > nul:作用与pause相同,但是不是在屏幕上显示“请按任意键继续...”的提示

4、errorlevel命令

命令结果返回码,0为成功,其它为不成功,如下案例
@echo off
choice /C dme /M "defrag, mem, end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag

:defrag
type a.txt
goto end

:mem
mem
goto end

:end
echo good bye

pause > nul
该案例使用choice命令让用户从D,M,E中选择一个字母,根据所选择参数的位置判断errorlevel值然后跳转到响应的代码段中执行。

5、for循环

@echo off
for %%c in (A, B, C) do echo %%c
echo=
pause > nul
遍历(A, B, C)中的每个字符并输出结果

6、start与call命令

start [其它脚本或命令]:在外部重新打开dos窗口执行该脚本的同时继续执行源脚本,二者并行执行
call [其它脚本或命令]:在当前窗口执行外部脚本,待外部脚本执行完毕后再执行当前脚本的后续内容
案例如下:
@echo off
title bat脚本
color 12
echo --------------枚举C盘目录下的所有文件----------------
echo=
rem start方式调用外部脚本
start C:\for.bat
rem call方式调用外部脚本
call C:for.bat
dir c:\*.*
rem 输出到文本文件
rem dir c:\*.* > result.txt
echo=
echo=
rem 输出文件目录属性结构
ipconfig
rem 系统相关命令
echo ----------------显示用户-------------------
net user
echo ----------------显示进程列表---------------
echo=
tasklist
echo=
echo ----------------handle finished-------------
pause > nul

7、其它命令待补充

参考:
https://www.cnblogs.com/iTlijun/p/6137027.html

你可能感兴趣的:(脚本相关)