命令  //功能

  1. echo  //标准输出命令 在CMD窗口中 显示echo 后的内容
  2. @   //关闭当前行的 回显    回显:源代码在 CMD 窗口中再次显示
  3. pasue     // 暂停程序 的执行
  4. call    //调用其他批处理  或着 代码块
  5. rem   // 注释信息的标识
  6. set    //定义一个变量
  7. goto  //跳转  用来作为流程控制
  8. start       //开始一个新程序 或 批处理
  9. if      // 条件判断
  10. for         //循环执行   循环的 基准的是 "行"
  11. setlocal   //设置 环境变量
  12. shift        //从指定参数出 开始执行
  13. "?" "*" 通配符
  14. "<" ">" ">>"    //重定向符号
  15. "|"           //管道符号   把前面得到结果 作为  后面的输入

对于不了解的命令参数 请在CMD中输入命令      命令名字 /? 后enter查看      for /?    cd /?   dir /?


1.echo

2.@

3.pause

5.rem

@echo off
rem 上面@ 关闭echo off 的回显 echo off 关闭 下面整个代码的回显
rem 注释代码标识 还能用 ::
echo hello world
:: 如果不暂停程序 执行后 直接结束 看不结果
pause

4.call

@echo off

:label6
echo 我是标签内的代码块 :: 请将echo6.bat 与该.bat文件 放同一个文件夹中
call echo6.bat
echo 调用 echo6.bat 成功
:: call 调用 代码块 需要有 : 号
call :label6
pause

6.set

@echo off
set var1=1
set var2=2
set var3=3
::调用变量请用 %%包围变量
echo 您设置的变量var1:%var1%
pause
echo 以var开头的变量有
set var
pause
echo 更改变量值
set var1=1111
echo 您设置的变量var1:%var1%
::清空变量
set var1=
set var2=
set var3=
::请看系统提示
set var
pause

7.goto

@echo off
:: call 转到指定标签处执行命令 执行完毕后 返回原处
call :lable3
:lable1
echo 这是lable1代码块中的内容显示
:: goto 跳转到 指定标签处 执行命令 不在返回原处
goto lable3
:lable2
echo 这是lable2代码块中的内容显示
:lable3
echo 这是lable3代码块中的内容显示
:lable4
echo 这是lable4代码块中的内容显示
pause

8.start

@echo off
:: start 可以启动快捷方式形式的exe文件
start D:\UserData\Pictures\TIM
pause
call D:\UserData\Pictures
pause
::路径最好不要有中文 有空格加引号
call "D:\Program Files (x86)\Tencent\TIM\Bin\QQScLauncher.exe"
pause
start echo6.bat
pause

9.if

@echo off
if 1==1 echo 值相同
if aa==aa ( echo 字符相同 )else ( echo 字符不同 )
set /p num1=请输入第一个数值:
set /p num2=请输入第二个数值:
rem 建议if else 写在一行
rem 小于 大于 等等比较运算符 请查看 if /? 帮助
if %num1% LSS %num2% ( echo 数字2大 ) else if %num1% EQU %num2% ( echo 一样大 ) else (echo 数字1大)
pause
if exist if6666.bat ( echo 文件存在 ) else echo 文件不存在
pause

10.for

15."|"

统计.bat所在目录的下的所有文件

@echo off
set /a sum=0
for /f %%i in ( 'dir /b /a-d' ) do (
set /a sum=sum+1
)
echo 共有%sum%个文件
pause
:: 来个简单的
dir /b /a-d | find /v /c ""
pause

11.setlocal

可以设置 环境变量  和 变量延时

setlocal enabledelayedexpansion

用于开启变量延迟,这是告诉解释器,在遇到复合语句的时候,不要将其作为一条语句同时处理,而仍然一条一条地去解释。但是这时必须用!str!来引用变量,如果仍然用%str%引用是不起作用的

()中的命令相当与一条命令   你在一条语句中即赋值改变 又调用变量 你说 变量值该是原来 还是该 你刚刚赋值的    需要开启变量延时 告诉程序 我要 及时跟新后的

@echo off
echo disabledelayedexpansion
set str=old
if %str% == old (
set str=new
echo %str%
)
pause
echo enabledelayedexpansion
setlocal enabledelayedexpansion
set str=old
if %str% == old (
set str=new
echo !str! ::开启请用!var!
echo %str% ::未变
)
pause

12.shift

@echo off
:begain
if "%1"=="" goto end
echo %1 %2 %3
shift
goto begain
:end
pause

该代码想要测试出效果需要
在代码所在的目录下  上面的地址栏窗口 输入cmd 然后enter

在出现的CMD窗口中 输入 xxx是你对上面代码的命名
xxx.bat 1 2 3 4

结果如下

代码中

%1 %2 %3 ...  是 从当前命令行获取到的参数    其取值范围是 1-9

shift 表示

  1. shift 是将所有参数往前移动一位。
  2. shift /2 是从第2个参数开始将后面的参数全部往前移动一位,但不影响前面的参数位置(即:不影响1)
  3. shift /3 是从第3个参数开始将后面的参数全部往前移动一位,但不影响前面的参数位置(即:不影响1,2)
  4. shift 的取值范围是 0-8

将当前命令行 后面的参数位置给bat后 发现shift后并没有被执行   估计 都作为了字符串处理

13 "?"  "*"

@echo off
::? 表示匹配任意一个字符
::下面代码表示 列出 文件名为2个字符的后缀为.bat的文件
dir ??.bat
pause
:: * 表示匹配任意数量个任意字符
::下面代码表示 列出 所有的.bat 的文件
dir *.bat
pause

14 "<" ">" ">"

@echo off
dir /b /a-d>FileList.txt
set /a sum=0
for /f %%i in ( ' dir /b /a-d ' ) do set /a sum=sum+1
echo %sum%
echo 当前目录下共有%sum%个文件>> FileList.txt
pause
set /p =输入不换行,<nul
set /p =继续输入,<nul
set /p =你换echo试试<nul
set
pause>nul 2>&1

重定向 标准输出是到CMD窗口 用1 默认  表示正常输出 2表示 出错提示

< 定向

输入不换行 利用set /p 提示功能 不定义变量 给其赋值nul   空 存在 
>定向到 txt 中 如果txt 中原来有内容将会 清空录入

>>定向到 txt中 在原来的基础上 追加内容

pause>nul 2>&1  &表示链接符     相当于 1>null 2>null  建议 pause>nul 2>nul

BAT 基础语法的更多相关文章

  1. .bat学习-基础语法(常用)

    一般来说,脚本或者语言都有相同地方 定义变量,输入,输出,判断条件等等.知道的相同之处,我们就可以借助强大的搜索引擎进行查找我们想要知道的东西. bat为批处理脚本BATCH.现在只知道是使用于win ...

  2. windows bat批处理语法简析

    第一节先介绍windows批处理.这个起源于跟旁边同事学习在windows用命令行办公,渐渐地有些批处理功能就需要了,于是专门抽出了几天学习了一下.我认为文档最重要的功能是为了备忘,择取了很多文档的例 ...

  3. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  4. iOS-----正则表达式的基础语法

    正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...

  5. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  6. emmet 系列(1)基础语法

    emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...

  7. Scala基础语法 (一)

    如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...

  8. Java基础语法

    java基础学习总结——基础语法1 一.标识符

  9. javascript中正则表达式的基础语法

    × 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...

  10. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

随机推荐

  1. SQL语句底层执行顺序

    1. SELECT 语句的完整结构 SQL92语法: SELECT ...,....,(存在聚合函数) FROM ...,...,... WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件 ...

  2. STM32F103使用FSMC对接正点原子3.5寸TFTLCD屏幕

    fsmc的使用算是32里面有点绕的一个知识点,但是想明白了其实也没啥了. 首先我先放32个0在这儿: 0000  0000  0000  0000  0000  0000  0000  0000 [3 ...

  3. 磊磊零基础打卡算法:day20 c++dfs树的深度优先遍历

    5.24 dfs深度优先搜索: 思想比较简单,就是一条路走到底,走到最深点处再回退一步,再看有没有路可以走,没有的话再回退一步,重复此步骤: 也是人们常讲的暴搜. 主要的用法: 通常需要一个状态数组来 ...

  4. C语言编译概念理解

    1.编译与CPU.操作系统的联系 参考:https://blog.csdn.net/dong_daxia/article/details/95328479?ops_request_misc=%257B ...

  5. 贪心算法(Java)

    贪心算法 文章目录 贪心算法 0.写在前面 1.贪心算法的基本要素 1.1 贪心选择性质 1.2 最优子结构性质 1.3 贪心算法与动态规划算法的差异 2.贪心算法的特点 3.贪心法的正确性证明 4. ...

  6. 快速排序(Java分治法)

    快速排序(Java分治法) 文章目录 快速排序(Java分治法) 0. 分治策略 1.思路步骤 2.代码 3.复杂度分析 3.1 最好情况 3.2 最坏情况 3.3 平均情况 3.4 性能影响因素 4 ...

  7. 不同页面的 body设置

    由于SPA页面的特性,传统的设置 body 背景色的方法并不通用. 解决方案:利用组件内的路由实现 第一种方式 // 实例创建之前 beforeCreate(){ document.querySele ...

  8. 2021.06.21 onmouseover和onmouseleave事件对比

    在重新巩固js基础的过程中,分别使用onmouseover和onmouseleave事件却导致了不同的效果,但是在之前的记忆中,这两者确实是一样的哈,因此探究一下产生不同效果的原因. 在使用onmou ...

  9. 谈恋爱要做什么事?基于auto.js自动发早安给女朋友

    谈恋爱要做什么事?除了用心之外,每天早安晚安必然是少不了的.但是每天都发免不了会忘, 为了避免遗忘,引起不必要的尴尬,我们可以做个自动化脚本来做这件事. 1 auto.js 是什么? Auto.JS是 ...

  10. 【python】yaml文件的读写

    [python]yaml文件的读写 冰冷的希望 2020-10-22 18:31:47 442 收藏 1分类专栏: python 文章标签: python yaml版权 python专栏收录该内容67 ...