1. @echo off

@echo off:关闭回显,执行后不会一条一条的显示执行的命令,与之相匹配的有@echo on

未关闭回显
echo hahaha
pause

关闭回显

2. pause

pause 暂停命令,执行时会在命令行窗口显示“请按任意键继续...”,并等待你按键;

pause > nul 暂停命令,只是不会显示“请按任意键继续...”

3. echo

echo:输出命令,在命令窗口中输出内容,在echo后的任何内容都会输出,无需使用单引号或双引号

4. 设置变量 set    set /a    取变量 !变量名!

  • 设置变量  set n=1 ; 设置变量n,并初始化为1;
  • 取变量的值:使用 “!变量名!”的方法获取变量的值,使用双感叹号的方式,需在执行文件前加上 @echo off&setlocal enabledelayedexpansion
  • set /a : 执行数学计算    set /a n+=1   执行n=n+1
  • set /p : 提示用户数        set /p n=输入:

@echo off&setlocal enabledelayedexpansion   rem 如要是使用双感叹号取变量的值,这句是必须的

set n=1                   rem 声明变量n并初始化为1
set /p n=输入:      rem 提示用户输入,并将用户输入的值赋给变量n
set /a n+=1             rem 执行数学计算n=n+1,“+=” 相当于“=n+1”
echo !n!                  rem  显示变量n的值

pause > nul

在循环体内使用变量需要启用变量延迟setlocal enabledelayedexpansion

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /l %%i in (1 1 10) do (
set var=%%i
echo !var! 启用延缓环境变量
echo %var% 未启用延缓环境变量
)

5. 去掉第n个字符,去掉最后n个字符,截取几位数

去掉前n个字符  :~

去掉后n个字符  :~0,-字符数

从第几个字符开始截取一定的长度  :~1,2  从第1位(索引位从0开始)开始截取2个字符

从第几个字符开始截取一定的长度  :~1,-2  前面去掉1位数,后面去掉2位数(这段理解不清楚)

取最后的n位数

%变量:~-n%

从后开始,去掉最后的n位数

%变量:~,-n%

6. 注释符号   rem  或  ::

7. 重定向 >

> ,将“>” 左侧命令执行的结果 写入 “>” 右侧的文件中,若文件不存在则自动创建文件。

@echo off&setlocal enabledelayedexpansion 
dir /s /l /b > 2.txt
pause > nul

罗列当前及子目录下的所有文件(及目录),写入到2.txt文档中。

8. md 创建目录    

md 123     创建一个名为123的文件夹

9. 批处理符号  |  &  &&   || 

  • &  command1 & command2  命令连接符,用来分隔一个命令行中的多个命令,先运行第一个命令,再运行第二个命令

@echo 第一个命令&@echo 第二个命令

  • &&  command1 && command2   只有在&&前面的语句command1运行成功,则运行&&后面command2的语句
  • ||     command1 || command2      只有在|| 前面的语句command1运行失败后,才运行 || 后面的command2的语句
  • |    管道符,就是让前一命令的输出当做后一命令的输入,即前一命令的结果当做一个参数传递给后面命令进行处理

10. goto 跳转到特定行

  • goto:eof  相当于exit,结束程序
  • goto:特定标签, 跳转到其他命令行语句
@echo off
set /p input=请输入字母A或B:
if "%input%"=="A" goto A
if "%input%"=="B" goto B
pause
exit :A
echo 您输入的字母是A
pause
exit :B
echo 您输入的字母是B
pause
exit

11. CALL  调用程序段

调用程序段(函数),可传递参数

@echo off

for /l %%i in (1001,1,1017) do (
call :MDIR %%i  rem 传递实参
)
goto:eof

:MDIR
set b=%1  rem 获取第一个形参的值并赋给变量b
md "hello %b:~1,4%"

12. move 移动文件或文件夹

@echo off
move G:\YFYF\10年\2012-10年-379 G:\YFYF\10年\2004
pause

13. md 创建目录

@echo off
for /l %%i in (1,1,10) do (
                  md G:\批处理练习\1\%%i
                          )
pause

14. md 创建目录

1>nul 意思是不显示命令运行的正确提示
2>nul 是不显示错误提示
一起就是 正确错误的都不显示
>是重定向符号
nul是空设备的意思
把提示输入到空设备就不显示了

重定向你可以理解为 输入到 的意思

15. for 循环中的 /r /d 扩展参数

  • /r : 主要用于搜索指定路径及其子目录中符合要求的文件,(\r后如果没有指定目录,则使用当前目录)

  • /d:用于搜索目录或文件夹(不搜索文件),并且不会搜索子目录

  • 获取特定路径下的目录名,注意特定路径的斜杠方向,路径名不能为中文

for /d %%i in (C:/Users/pytxf/Desktop/SAOMIAO/*) do echo %%i

  • 获取当前目录下的特定文件夹下的目录名

for /d %%i in (图片列表/*) do echo %%i

for /f "delims=" %%a in ('dir /ad/b "新扫描件"') do (

16. dir 获取当前目录下的文件或文件夹

  1. dir: 获取当前目录下的文件或文件夹,包含文件的时间、大小、文件名;
  2. dir /b: 获取当前目录下的文件或文件夹,去掉文件的大小、时间属性,仅获取名称;
  3. dir /ad/b  或dir /a:d/b : 获取当前目录下的目录名。(不获取文件名)
  4. dir /a-d/b 或 dir /a:a/b:获取当前目录下的文件名。(不获取目录名)
  5. dir /s/b: 获取当前目录及子目录下的所有文件名或文件夹名
  6. dir /s/b 关键词或含通配符的关键词:查找名称包含关键词的所有文件名或文件夹名

17. %%~ni (这里的i是循环变量名,若循环变量为a,则相应的为%%~na)

  1. %%~ni: 代表文件名
  2. %%~xi: 代表文件扩展名
  3. %%~nxi: 代表文件名和扩展名,不包含盘符及路径信息
  4. %%~fi: 获取文件的整个路径及文件名
  5. %%~pi:表示获取该文件的路径,不包含盘符的信息
  6. %%~di:表示获取该文件所在的盘符
  7. %%~ti:表示获取该文件的上次修改时间
  8. %%~zi:表示获取该文件的大小

18. setlocal和endlocal

setlocal和endlocal一般是搭配使用的,setlocal和endlocal命令执行结果是让dao中间的程序对版于系统变量的权改变只在程序内起作用,不会影响整个系统级别。

19. 判断字符串是否包含某字符串

@echo off
set a=55544333
set c=6666dfsfds
set b=44
echo %a%| findstr %b% >nul && (
    echo %a%包含%b%
) || (
    echo %a%不包含%b%
)
echo %c%| findstr %b% >nul && (
    echo %c%包含%b%
) || (
    echo %c%不包含%b%
)

pause

20. pushd 和 popd

切换当前目录
@echo off
c: & cd\ & md mp3       #在 C:\ 建立 mp3 文件夹
md d:\mp4               #在 D:\ 建立 mp4 文件夹
cd /d d:\mp4            #更改当前目录为 d:\mp4
pushd c:\mp3            #保存当前目录,并切换当前目录为 c:\mp3
popd                    #恢复当前目录为刚才保存的 d:\mp4
一般用处不大,在当前目录名不确定时,会有点帮助。(dos编程中很有用)

【BAT】bat批处理笔记相关推荐

  1. windows7 bat自动批处理改变IP地址、DNS和代理设置

    windows7  bat自动批处理改变IP地址.DNS和代理设置 改变IP地址设置: @echo off netsh interface ipv4 set address "无线网络连接& ...

  2. 用bat脚本批处理多个应用或文件

    对于使用电脑的小伙伴,在开机时是不是要打开很多软件或文件,特别对于上班族来说,什么QQ.微信.浏览器.乱七八糟的文件.工作特定的软件... ...反正我是要打开十多个的.那么,有没有我只要打开一个就能 ...

  3. bat批处理笔记(一)

    本文参考链接:https://blog.csdn.net/iteye_1032/article/details/82206746, http://www.dzwebs.net/3814.html 1. ...

  4. bat批处理笔记(二)

    eof 是"end of file"的缩写 在批处理作用主要有二: 1.在无call的情况下,会直接退出批处理,此时等同于exit 2.在call的情况下,会中止call,继续执行 ...

  5. bat批处理笔记(二)-start命令

    start命令可以在命令行下运行一个程序,可以打开盘符,文件,文件夹,网址,程序. 1.打开盘符: start C: start /max E: rem 最大化打开 start /min F: rem ...

  6. 一个无需软件加密文件夹的bat(批处理)文件的分析

    作者:iamlaosong 网上看到一个bat文件,说是不用软件就可以加密文件夹,实际上就是用这个批处理文件改变文件夹属性,将其隐藏,这样就看不见了.当然这种方法对于稍微懂点电脑的人是没用的,真正的加 ...

  7. 【bat】批处理教程之for的/f参数

    转自:https://www.cnblogs.com/dongzhiquan/archive/2009/08/06/1994754.html for 对很多批处理新手来说可能是最不好理解的,而微软的帮 ...

  8. Windows bat常用批处理命令学习

    转载自:https://blog.csdn.net/qq826364410/article/details/79323351 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义, ...

  9. bat/cmd批处理程序设计教程

    序言 这是一篇技术教程,我真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.我写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让 ...

最新文章

  1. 黑客专用Linux发行版Kali Linux发布滚动更新版2016.1
  2. 设计模式(七)装饰模式
  3. 使用FileDialog查看文件内容
  4. J2EE的13种核心技术简介
  5. 学了python可以干嘛-学Python后到底能干什么?网友:我太难了
  6. iOS 使用mp4v2合成的视频注意事项
  7. sqlite 查看数据库表和字段
  8. linux下多条命令组合使用
  9. matlab simulink 六自由度机械臂模糊控制pid
  10. SSM | SpringMVC
  11. 法律对合伙企业债务承担方式的规定
  12. 多个订单待付款半小时倒计时功能
  13. 在线正则表达式大全测试
  14. 关于centos7重启报错:[sdb] Assuming drive cache: write through [sda] Assuming drive 解决如下
  15. 视音频编解码技术零基础学习方法
  16. android 获取视频长度,android中如何获取视频时长
  17. linux 磁盘io技术3------libaio使用介绍
  18. 全志 android 编译,全志Android SDK编译详解(二)
  19. 简单的方法Android的数据恢复你的Andr​​oid手机
  20. Luogu P2657 [SCOI2009]windy数

热门文章

  1. 从IT之家看企业上云
  2. 七种功能强大的聊天机器人平台
  3. Git基本操作(15)- git +jenkins持续集成(windows+gitee)
  4. ssm+Vue计算机毕业设计寻迹边境丹东旅游网站(程序+LW文档)
  5. 软件测试入坑建议!!!
  6. Python 使用Flask传输视频流
  7. Java-如何解决多线程当中共享资源的冲突问题
  8. 【Substance】Substance Painter基本制作流程
  9. 为什么MacBook装Windows这么火?
  10. Echarts之饼图内外圆重叠且图例不统一