【BAT】bat批处理笔记
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 获取当前目录下的文件或文件夹
- dir: 获取当前目录下的文件或文件夹,包含文件的时间、大小、文件名;
- dir /b: 获取当前目录下的文件或文件夹,去掉文件的大小、时间属性,仅获取名称;
- dir /ad/b 或dir /a:d/b : 获取当前目录下的目录名。(不获取文件名)
- dir /a-d/b 或 dir /a:a/b:获取当前目录下的文件名。(不获取目录名)
- dir /s/b: 获取当前目录及子目录下的所有文件名或文件夹名
- dir /s/b 关键词或含通配符的关键词:查找名称包含关键词的所有文件名或文件夹名
17. %%~ni (这里的i是循环变量名,若循环变量为a,则相应的为%%~na)
- %%~ni: 代表文件名
- %%~xi: 代表文件扩展名
- %%~nxi: 代表文件名和扩展名,不包含盘符及路径信息
- %%~fi: 获取文件的整个路径及文件名
- %%~pi:表示获取该文件的路径,不包含盘符的信息
- %%~di:表示获取该文件所在的盘符
- %%~ti:表示获取该文件的上次修改时间
- %%~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批处理笔记相关推荐
- windows7 bat自动批处理改变IP地址、DNS和代理设置
windows7 bat自动批处理改变IP地址.DNS和代理设置 改变IP地址设置: @echo off netsh interface ipv4 set address "无线网络连接& ...
- 用bat脚本批处理多个应用或文件
对于使用电脑的小伙伴,在开机时是不是要打开很多软件或文件,特别对于上班族来说,什么QQ.微信.浏览器.乱七八糟的文件.工作特定的软件... ...反正我是要打开十多个的.那么,有没有我只要打开一个就能 ...
- bat批处理笔记(一)
本文参考链接:https://blog.csdn.net/iteye_1032/article/details/82206746, http://www.dzwebs.net/3814.html 1. ...
- bat批处理笔记(二)
eof 是"end of file"的缩写 在批处理作用主要有二: 1.在无call的情况下,会直接退出批处理,此时等同于exit 2.在call的情况下,会中止call,继续执行 ...
- bat批处理笔记(二)-start命令
start命令可以在命令行下运行一个程序,可以打开盘符,文件,文件夹,网址,程序. 1.打开盘符: start C: start /max E: rem 最大化打开 start /min F: rem ...
- 一个无需软件加密文件夹的bat(批处理)文件的分析
作者:iamlaosong 网上看到一个bat文件,说是不用软件就可以加密文件夹,实际上就是用这个批处理文件改变文件夹属性,将其隐藏,这样就看不见了.当然这种方法对于稍微懂点电脑的人是没用的,真正的加 ...
- 【bat】批处理教程之for的/f参数
转自:https://www.cnblogs.com/dongzhiquan/archive/2009/08/06/1994754.html for 对很多批处理新手来说可能是最不好理解的,而微软的帮 ...
- Windows bat常用批处理命令学习
转载自:https://blog.csdn.net/qq826364410/article/details/79323351 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义, ...
- bat/cmd批处理程序设计教程
序言 这是一篇技术教程,我真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.我写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让 ...
最新文章
- 黑客专用Linux发行版Kali Linux发布滚动更新版2016.1
- 设计模式(七)装饰模式
- 使用FileDialog查看文件内容
- J2EE的13种核心技术简介
- 学了python可以干嘛-学Python后到底能干什么?网友:我太难了
- iOS 使用mp4v2合成的视频注意事项
- sqlite 查看数据库表和字段
- linux下多条命令组合使用
- matlab simulink 六自由度机械臂模糊控制pid
- SSM | SpringMVC
- 法律对合伙企业债务承担方式的规定
- 多个订单待付款半小时倒计时功能
- 在线正则表达式大全测试
- 关于centos7重启报错:[sdb] Assuming drive cache: write through [sda] Assuming drive 解决如下
- 视音频编解码技术零基础学习方法
- android 获取视频长度,android中如何获取视频时长
- linux 磁盘io技术3------libaio使用介绍
- 全志 android 编译,全志Android SDK编译详解(二)
- 简单的方法Android的数据恢复你的Andr​​oid手机
- Luogu P2657 [SCOI2009]windy数