BAT文件的常用语法

2023-05-16

bat文件中常用的命令有:echo、@、rem、::、pause、goto、%、call、if、copy等。下面简要给出这几个命令的用法。

1. echo命令

echo 表示显示此命令后的字符。例如echoHello WorldchoHello World这条echo命令,在命令行中执行这条命令时,将在命令行中显示字符串:

echoHello World

HelloWorld

其中前面一个字符串“echo Hello World”表示执行的命令本身,后面的字符串“Hello World”表示这条命令的执行结果。

echo命令有个常用的组合命令“echo off”,表示此语句后所有运行的命令都不显示命令行本身,它与“@命令”的功能非常相似。即上面的例子“echo Hello World”这条echo命令中执行时不显示执行过程,也就是不显示命令本身“echo HelloWorld”,只显示命令执行结果“HelloWorld”。

2. @、rem、::、pause、goto命令

1)@命令

它的作用是让执行窗口中不显示它后面这一行的命令本身。它的作用和“echo off”的作用非常类似,只是“echo off”命令的作用域是整个脚本文件,而@命令只是紧接着它后面的那个命令。

例如一般的脚本文件都是一个“@echo off”命令开始的,这句命令表示不显示后面所有命令的执行过程,且“echo off”这句命令本身也不显示。

2)rem与::命令

rem表示是注释行。::也是注释命令,在批处理脚本文件中和rem命令等效,它后面的内容在执行时不显示,也不起任何作用,增加脚本的可读性。

3)pause命令

停止脚本文件命令,按任意键继续。

4)goto命令

和C语言的goto语句类似,跳转到相应的标号处执行。

3 . %命令

%表示变量的引用。

1)非for语句引用变量

例如下面的代码,执行下面的代码,首先将变量a设为123,之后引用变量a,程序将显示“123”,若不加“%%”,程序将认为a是一个字符串,显示字符串“a”。

@echo off

seta=123

echo %a%

2)for语句引用变量

for语句引用变量稍有不同,要加上两个“%%”。因为要与另外形式的外部变量%1 -%9区分开。

例如下面的语句,执行后将在命令行中打印“1 2 3 4 5”这几个数。

for %%iin (1 2 3 4 5 ) do  echo %%i

4. call命令

call命令总结下来有下面的四种用法:

1)第一种用法

也就是最常用的一种用法,就是调用另一个批处理文件。

2)第二种用法

如果在被调用的批处理中面有参数,调用的时候需要在后面加上参数。

例如下面的批处理代码

a.bat内容:

@echo off

echo %0 %1

b.bat内容:

@echo off

call a.bat hello

dir c:\

pause

上面的例子将执行a.bat脚本文件打印出的内容为“a.bathello”。

在执行b.bat的时候,会将hello赋值给%1,而%0代表a.bat自己。在批处理中,在处理批处理文件后面最多可以带10个参数。使用%*代表所有参数%1-%9代表9个参数,%0代表批处理自己。

3)第三种用法

调用一个应用程序,例如call notepad.exe打开记事本。call可以这么用,但一般在调用应用程序的时候会使用start,很少用call。

4)第四种用法

调用本批处理中的一个标签。例如下面的有一个脚本语言:

@echo off

call :no1

start notepad.exe

exit

:no1

startcalc

执行该脚本文件时首先会调转到标号“:no1”出执行打开计算器程序,在接着执行调用call命令之后的代码打开记事本应用程序。

5. if 命令

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:

1)if

语法: if [not] "参数" == "字符串" 待执行的命令。参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

Sample:if "%1" == "a"//表示第一个参数是够等于字符串“a”

2)if exist

if [not] exist [路径\]文件名。如果有指定的文件,则条件成立,运行命令,否则运行下一句。

Sample: ifexist config.sys edit config.sys 表示如果存在这文件,则编辑它

Sample:if exist config.sys type config.sys 表示如果存在这文件,则显示它的内容

3)iferrorlevelnumber

if [not]errorlevel <数字>待执行的命令。如果程序返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。(返回值必须按照从大到小的顺序排列)

@echooff      

XCOPYF:\test.bat D:\      

IFERRORLEVEL 1  (ECHO 文件拷贝失败)

Else IFERRORLEVEL 0 ECHO (成功拷贝文件)      

pause

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),称为错误码errorlevel或称返回码。常见的返回码为0、1。通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令。

6. copy命令

DOS下最常用的拷贝命令。命令格式如下:

COPY [/D][/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]

[+ source[/A | /B] [+ ...]] [destination [/A | /B]]

命令参数解释如下:

source 指定要复制的文件。

/A 表示一个ASCII 文本文件。

/B 表示一个二进位文件。

/D 允许解密要创建的目标文件

destination为新文件指定文件夹和/或文件名。

/V 验证新文件写入是否正确。

/N 复制文件时,尽可能使用短文件名。

/Y 不使用确认是否要覆盖现有目标文件的提示。

/-Y 使用确认是否要覆盖现有目标文件的提示。

/Z 用可重新启动模式复制已联网的文件。

K60的BAT文件作用总结

总结一下,BAT文件下的5个文件其实功能可以归纳为两点。

1 将CW10.2集成开发环境下给出的参数(编译生成路径)生成并检查其路径的正确性。确保这个生成路径一定是存在的且是正确的。

2 将PSP和BSP工程用到的头文件都复制到文件生成文件夹下。其实这个很好理解,因为应用工程在编译时,最终定位的BSP和PSP工程的内容都是在生成文件夹LIB文件下去查找的。BSP和PSP工程中的.c文件都已经做到.a文件中了(CW10.2集成开发环境实现),但是熟悉.a文件的读者一定会知道,.a文件是不能包含.h文件(头文件)的,所以要将头文件手动加到LIB文件下。但是MQX毕竟是操作系统,其头文件不是一个两个那么少,所以用户手动复制的话会很麻烦,用户复制的时候也容易少复制文件,导致程序编译时不过。所以开发者将这些重复的复制操作变成脚本文件,“一步到位”省去了读者很多不必要的麻烦。

3. BAT文件的这6个脚本文件(MQX3.8版本共有6个脚本文件,以后的版本有可能会增加)是在BSP和PSP工程编译之前和编译之后执行的。其中“bsp_prebuild.bat”是在BSP编译之前调用的,“bsp_twrk60n512.bat”、“write_readme.bat”是在BSP工程编译之后调用的。“psp_cortex.bat”和“psp_twrk60n512.bat”是在PSP工程编译之后调用的。“verify_dir.bat”这个脚本文件为验证路径的正确性,是一个通用的脚本文件,编译前和编译后这两个过程中都有可能调用。

 

表101-1 工程下各个bat文件简明功能

文件名

简明功能

bsp_prebuild.bat

生成编译输出路径文件夹,删除上一次BSP工程编译生成的内容。

bsp_twrk60n512.bat

复制BSP工程中所有用到的头文件至编译输出路径下。

write_readme.bat

在编译输出路径文件夹下生成一个Readme文本文件。

psp_cortex.bat

复制PSP工程中所有用到的头文件至编译输出路径下。

psp_twrk60n512.bat

复制处理器特有的一些头文件至编译输出路径下。

verify_dir.bat

验证路径是否正确和存在。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BAT文件的常用语法 的相关文章

  • 超详细 批处理文件脚本(bat) 教程(持续更新)

    目录 前言 xff08 1 xff09 使用echo输出字符串 xff08 2 xff09 使用echo拼接字符串 i xff09 没有变量 xff0c 直接拼接 ii xff09 有变量 xff0c 拼接变量 xff08 3 xff09
  • 【批处理bat】暂停功能命令

    一 目的 对暂停功能做修改 二 功能 2 1屏蔽 pause gt nul 在原本的pause上使用右尖括号写入nul即可不显示任何内容 2 2修改 echo press anykey to continue XD 在pause前利用ech
  • 服务器js文件大小变为0kb,BAT-使用BAT方法删除目录下0KB文件

    64 Echo Off For f 34 tokens 61 34 i in 39 dir a d b s 34 34 39 do If 34 Del q f 34 i 34 Pause 火狐删除配置文件 会删除目录下所有文件 切记不要把配
  • Windows运行单个.bat文件或运行多个.bat文件

    一 运行单个 bat文件 首先创建一个 bat文件 xff0c 例如 1 bat xff0c 进入文件编辑 xff0c 输入你想做的指令 xff0c 例如 xff1a 进入Anaconda虚拟环境 xff0c 然后运行代码 CALL E A
  • python打开bat文件_Python之批处理字符串(打开文件)

    关注微信公众号 黑客易先生 xff0c 关注了你就知道我活儿好 前辈今天让我帮他弄16个新的QQ xff0c 无保无绑 一个一个申请虽然可以 xff0c 但是想起以前黑过一台刷空间访问量的服务器 xff0c 里面有1000个QQ小号 xff
  • Jenkins 执行Python脚本以及Bat(批处理)脚本

    文章目录 一 新建任务二 创建任务三 配置四 勾选参数化构建过程1 下拉框参数2 字符参数3 布尔参数4 git分支选项 五 执行脚本命令六 python文件存放路径七 配置以及构建效果图1 输入构建参数 xff0c 选中勾选框 xff0c
  • cmd中执行批处理(.bat)文件,批处理文件调用python脚本

    记录我在cmd中操作遇到的一些问题 以及Bat脚本常用的一些命令 文章目录 一 bat批处理文件调用python脚本 xff0c 此时执行 bat文件出现了无模块的问题 xff08 安装python模块 xff09 二 cmd执行带参的ba
  • 使用bat文件实现部署以及备份

    因为每次都要把文件传上去 停止服务器 xff0c 然后备份 xff0c 再把文件移入再启动 xff0c 太麻烦 所以写了个bat文件执行 停止服务 备份 移动文件从桌面到文件夹 在启动 xff0c 启动的net stop 是我把启动文件注册
  • windows之bat脚本对字符串截取的操作

    set name1 61 1 set newname 61 name1 0 8 在 Windows 的批处理 bat 脚本中 xff0c name1 0 8 表示对变量 name1 进行字符串截取操作 xff0c 取它的起始索引为 0 xf
  • bat打包成exe

    在之前的文章中向大家介绍了如何通过exe 4j将jar打包成exe文件 这篇文章为大家介绍一下如何将 bat文件打包成exe文件 首先为大家介绍一下 下面我们使用的打包工具 下载地址 BAT to EXE Converter 积分多的小伙伴
  • windows批处理命令总结(超详细滴)

    总结自 https baike baidu com item E6 89 B9 E5 A4 84 E7 90 86 1448600 fr aladdin 文件夹管理 cd 显示当前目录名或改变当前目录 md 创建目录 rd 删除一个目录 d
  • Bat批处理生成带随机数的毫秒时间戳验证码

    second bat echo off set temp Spring gt Echo WScript Echo new Date getTime for f a in cscript nologo e jscript do set tim
  • 批量替换文件及文件夹名称(bat)

    echo off SetLocal EnableDelayedExpansion set p old 输入原字符 Set p new 输入新字符 先处理文件 For f delims i in dir s b a d do Set a nx
  • 使用bat文件安装卸载Window服务

    1 安装服务 echo off title 安装windows服务 path SystemRoot Microsoft NET Framework v4 0 30319 echo echo echo windows服务程序安装 echo e
  • 在cmd/bat脚本中获取当前脚本文件所在目录

    Q 在Win7 Win10中以管理员身份运行在cmd bat脚本时 如何获取当前脚本文件所在目录 当我们在Win7 Win10中使用鼠标右键的 以管理员身份运行 以管理员身份运行cmd bat脚本时 系统默认进入的目录是C Windows
  • windows下cmd快速生成大文件命令

    fsutil file createnew 文件名 文件大小
  • 批处理命令,函数传参和跳转

    文章目录 函数 参数传递 返回值 局部变量保护 goto 批处理系列 初步 set指令 设置变量 函数 函数封装是编程语言必不可少的环节 而函数在创建时 至少需要有一个函数标识 同时需要一块区域 来组成函数体 Dos中的函数用标签来标识 以
  • windows脚本 批量删除指定文件夹、指定文件

    前言 用于批量删除项目中的测试数据 提供用户纯净的软件 使用说明 修改file list和folder list对应的数据 来自定义删除的内容 效果图 源码 echo off chcp 65001 gt nul 2 gt 1 REM 设置文
  • 开启防火墙脚本

    sc config MpsSvc start AUTO net start MpsSvc
  • 批量生成文件夹内文件的目录

    在记事本内输入 dir b gt 文件目录 txt 后保存记事本文件为bat格式后点击执行便可以生成 批处理文件 在DOS和Windows 任意 系统中 bat文件是可执行文件 由一系列命令构成 其中可以包含对其他程序的调用 这个文件的每一

随机推荐

  • sci_loopback_int的例程(中断程序)

    例程代码如下 xff1a include 34 DSP28x Project h 34 Device Headerfile and Examples Include File define CPU FREQ 40E6 Default 61
  • python中使用subprocess.Popen中的返回值总结:

    usr bin python coding UTF 8 import sys import subprocess import traceback author by zhangheng timestamp 2018 06 08 gennl
  • SPI工作模式

    1 SPI总线条数 MISO xff1a 主设备输入 从设备输出引脚 该引脚在从模式下发送数据 xff0c 在主模式下接收数据 MOSI xff1a 主设备输出 从设备输入引脚 该引脚在主模式下发送数据 xff0c 在从模式下接收数据 SC
  • 游戏常用算法:四种迷宫生成算法

    简介 所谓迷宫生成算法 xff0c 就是用以生成随机的迷宫的算法 迷宫生成算法是处于这样一个场景 xff1a 一个row行 xff0c col列的网格地图 xff0c 一开始默认所有网格四周的墙是封闭的 要求在网格地图边缘 xff0c 也就
  • OPEN alliance工作小组

    Open Alliance TC 8小组 TC 8 xff1a 汽车以太网ECU测试规范 TC 8分配了汽车以太网ECU测试规范 它根据这些共享要求定义了适用于汽车以太网网络中所有ECU的规范 TC8定义了测试流程和支持建立能够执行ECU测
  • 测试PCB线路的阻抗的方法

    1 TDR测试 TDR是利用短脉冲信号发送到测试信号线上 xff0c 当信号到达另一端或者遇到不匹配点的时候就会发生反射回来 通过测量反射信号的时间和特征来判断线路的阻抗和不匹配点的位置 TDR测试需要专业的测试设备 xff0c 如时域反射
  • 开关电源的特性阻抗

    一 开关电源的特性阻抗好坏可以用以下几个量化指标来评估 xff1a 1 交流阻抗 xff08 AC Impedance xff09 xff1a 交流阻抗是指开关电源在交流信号下的电阻 电感和电容等电学特性 交流阻抗的好坏直接影响开关电源的驱
  • 学网络比不可少的网络协议分析神器-wireshark

    Wireshark是一款网络协议分析器 xff0c 可以用于捕获和分析网络数据包 xff0c 以便深入了解网络通信的细节和性能 xff0c 同时也可以用于网络安全分析和故障排除 Wireshark的主要功能包括 xff1a 1 捕获网络数据
  • C语言return的用法详解,C语言函数返回值详解

    C语言return的用法详解 xff0c C语言函数返回值详解 函数的返回值是指函数被调用之后 xff0c 执行函数体中的代码所得到的结果 xff0c 这个结果通过 return 语句返回 return 语句的一般形式为 xff1a spa
  • 网络编程——多线程编程

    文章目录 目的内容源代码及结果 1 Linux下的线程同步 1 1 编程使用互斥量实现线程同步 xff1b 1 2 编程使用信号量实现线程同步 xff0c 要求实现以下功能 xff1a 线程A从用户输入得到值后存入全局变量num xff0c
  • ARM-MPU内存保护单元详解

    ARM MPU 详解 简介 MPU Memory Protection Unit 内存保护单元 本文主要讲 armv7 m 架构 架构下的 MPU 在 armv7 m 架构下 xff0c Cortex M3 和 Cortex M4 处理器对
  • 玩转doxygen 之RT-THREAD

    玩转doxygen 之RT THREAD 文章目标 经常会看到小伙伴们遇到怎么写函数注释头疼 xff0c 以及如何生成漂亮的代码注释文档头疼 据我了解 xff0c 目前C语言中的代码注释规则有且只有一种比较常用 xff0c 就是doxyge
  • STM32如何将文件放到内部flash里面

    STM32如何将文件放到内部flash里面 背景介绍 上一篇讲到如何将STM32的FLASH改成文件系统 xff1a 如何不用外设在STM32片上FLASH做一个文件系统 https club rt thread org ask artic
  • 营运型手游开发、测试、正式的三阶段开发架构

    在手机游戏的畅销排行榜上 xff0c 可以看到大多数的游戏都是营运型的游戏 所谓的营运型游戏 xff0c 指的是游戏的开发并不是上架后就结束 xff0c 而是需要持续的配合游戏营运的需求 xff0c 进行游戏的更新 内容调整以及后续内容的开
  • 【github】【action】如何给软件包添加CI集成

    github action 如何给软件包添加CI集成 简介 github有自己的CI集成工具 action 很少有小伙伴关注到 xff0c 如果你有自己的软件包 xff0c 想要对其进行维护的话 xff0c 添加CI集成能够方便你快速验证你
  • Access 标准表达式中数据类型不匹配

    Access 标准表达式中数据类型不匹配 Access标准表达式中数据类型不匹配 今天在做一个小程序时 要求用到Access数据库 在调试运行一个SELECT语句时 老是提示标准表达式中数据类型不匹配 弄了好久 原来发现是数据类型不匹配的问
  • c#中new一个对象以后,是否需要手动释放?

    c 中new一个对象以后 xff0c 是否需要手动释放 xff1f 2012 04 28 23 43 wshbfzdzb 分类 xff1a C NET 浏览723次 c 43 43 中 class1 a 61 new class1 需要在用
  • ARM M0+各种定时器驱动的编写

    systick 系统滴答时间 这个定时器之前的文章已经讲过 这个是一个递减的定时器 xff0c 有个模数寄存器 在此不多说 就是一个系统的模块 xff0c 这个模块是集成在ARM M0 43 内核中的 xff0c 其实主要是集成在NVIC
  • MG323所有命令使用

    AT 43 CGMR 61 OK AT 43 GMR 61 OK AT 43 GMR 12 210 10 05 00 OK AT 43 CGSN 351869042318140 OK AT 43 CIMI 460021734971641 O
  • BAT文件的常用语法

    bat文件中常用的命令有 xff1a echo 64 rem pause goto call if copy等 下面简要给出这几个命令的用法 1 echo命令 echo 表示显示此命令后的字符 例如echoHello World choHe