批处理命令记录

216 阅读3分钟

学习目的:

为了更方便的开发工作,比如你想删除所有项目中的build文件,修改整个文件夹下所有文件的格式,或者一个项目中存在多个git路径的module,此时用批处理工具都是很方便的,一切为了更方便。

  • help

    起到命令查看的作用 eg: help type(等同“type /?”) >>tmp.txt(表示写到文件中)

  • @

    不显示@后面的命令(如:入侵时不想别人看到命令)

  • echo

    @echo off

    隐藏所有命令

    显示信息:

    echo "日志"

    输如信息到文件,也可应用输如空内容用于创建文件

    echo > ad.txt (>:表示覆盖文件,>>:表示追加内容)

  • rem

    注释

  • pause

    暂停,执行,屏幕会提示“按压任意键继续”

  • call

    启动其他批处理,并不停止父批处理程序,子的执行完后能继续执行父程序。

    Sample:call test2.bat arg1 arg2 (调用同目录下的 test2.bat,且输入2个参数给他)

  • start

    其他所有DOS命令 和 命令行程序

  • exit

    退出当前窗口

  • random

    随机数(0-~)

  • if

    if

    语法: if [not] "参数" == "字符串" 待执行的命令

    if exist

    语法: if [not] exist [路径]文件名 待执行的命令

    if errorlevel number

    语法: if [not] errorlevel <数字> 待执行的命令

    else

    if 条件 (成立时执行的命令) else (不成立时执行的命令)

    Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )

    比较运算符:

    EQU - 等于 (一般使用“==”) NEQ - 不等于 (没有 “!=”,改用“ if not 1==1 ”的写法) LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于

  • choice

    choice 使用此命令可以让用户输入一个字符(用于选择)

    Sample: choice /c:dme defrag,mem,end 将显示: defrag,mem,end[D,M,E]? Sample: choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (应先判断数值最高的错误码) if errorlevel 2 goto mem if errotlevel 1 goto end

  • for

    先记录常用的内容,多余内容可子性查看网页

    for /d %% i in ( * ) do (conmmand处理)

    /d:遍历当前目录下所有文件夹

    /r:遍历所有文件及文件夹

    for /r %%i in (*) do (echo %%i)

    for /L %%i in (start ,step,end) do (conmmand处理)

    L:表述数字

    for /l %%i in (1,2,5) do (echo %%i)

    显示:1,3,5

  • goto

    跳转到指定的位置执行命令

    eg:

    :begin (做个标记位)

    ………………

    goto begin

  • 文件操作

    md:创建文件夹

    rd: 删除文件夹

    ren: 重命名文件(夹)

    move: 移动文件(夹)

  • 特殊字符的使用

    %~dp0 :代表当前路径

  • 变量

    set name = 字符串

    使用变量需要%name%

    set /p name="请输如你的名字:"

    /p表示出口提示用于输如内容,变量即为输如的内容

    set /a name=2+1

    /a 表示数子表达式

  • 参数

    参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。

    %[0-9]

    %0 : 表示批处理命令本身

    %1-9:表示call 和start启动此批处理输如的参数,

    eg: call text.bat test1 test 2: %0=text.bat %1=test1 %2=test2,其他都是空

    Sample: call test2.bat "hello" "haha" (执行同目录下的“test2.bat”文件,并输入两个参数) 在“test2.bat”文件里写: echo %1 (打印: "hello") echo %2 (打印: "haha") echo %0 (打印: test2.bat) echo %19 (打印: "hello"9)

暂时只用到这些,后期用到了更复杂的再补充。

参考网站:windows bat批处理基础命令学习教程