批处理命令
作者:追风剑情 发布于:2016-8-18 15:09 分类:批处理
当前目录%cd%与%~dp0
运行
- echo off
- echo path is %cd%
- echo path is %~dp0
- pause
开启延迟环境变量扩展
setlocal enabledelayedexpansion
示例1
- @echo off
- set a=4
- set a=5&echo %a%
- pause
输出 4
原理:批处理会先给%a%赋值,再执行a=5
示例2
- @echo off
- rem 开启延迟环境变量扩展
- setlocal enabledelayedexpansion
- set a=4
- set a=5&echo !a!
- pause
输出 5
原理:批处理会先执行a=5,再给!a!赋值。注意这里的写法是感叹号。
输入数据
set /p
示例1
- @echo off
- rem 接收用户输入的数据并赋值给data变量
- set /p data=请输入数据:
- echo 你输入的数据为:%data%
- pause
跳转命令
goto
示例1
- @echo off
- rem 显示菜单
- :MENU
- echo 菜单
- echo 1.选项一
- echo 2.选项二
- echo 3.退出
- rem set /p 接收用户输入的数据并赋值给menu变量
- set /p menu=请输入选项:
- echo 你选择:%menu%
- rem /i 表示比较时不区分大小写
- if /i "%menu%" == "1" goto ITEM1
- rem if else需要用小括号对代码分组
- if /i "%menu%" == "2" (goto ITEM2) else (goto EXIT)
- :ITEM1
- echo 执行选项一操作...
- goto MENU
- :ITEM2
- echo 执行选项二操作...
- goto MENU
- :EXIT
- pause
删除缓存目录
rmdir
选项:
/s 删除目录下所有文件
/q 不提示
- @echo off
- rem 设置dos窗口标题
- @title 批处理——删除三国战神缓存目录
- rem 显示操作系统版本信息
- echo 当前操作系统版本信息
- ver
- wmic os get Caption
- set cacheDir=C:\Users\Administrator\AppData\LocalLow\zwwx
- if exist %cacheDir% (
- echo 发现缓存目录 %cacheDir%
- rmdir /q /s %cacheDir%
- echo 缓存目录已删除!
- ) else (
- echo 没缓存目录
- )
- pause
输入:
当前操作系统版本信息
Microsoft Windows [版本 6.1.7601]
Caption
Microsoft Windows 7 Ultimate
发现缓存目录 C:\Users\Administrator\AppData\LocalLow\zwwx
缓存目录已删除!
请按任意键继续. . .
复制目录
xcopy
选项:
/E 复制目录及下面的所有东西
/Y 覆盖文件时不进行提示
- @echo off
- set srouce=D:\mydir
- set src=E:\dir
- rem 预先创建目标目录,避免提示。
- MD %src%
- rem 复制目录及下面的所有东西,覆盖目标文件时不进行提示。
- XCOPY %srouce% %src% /E/Y
- pause
跳转命令
call
- @echo off
- echo test1
- call :Label1
- echo test2
- pause
- :Label1
- echo 111
输出
test1
111
test2
请按任意键继续. . .
获取时间
- echo off
- echo 默认时间格式
- echo %date%
- echo %time%
- echo ---
- echo 自定义时间格式(年-月-日 时:分:秒 星期)
- ::%date:~x,y%及%time:~x,y% 说明: x表示位置,y表示位数
- echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2% 星期%DATE:~-1%
- pause
for命令
- @echo off
- rem 可输入for /? 来查看帮助信息
- rem /r 递归搜索C盘下的所有exe文件,并输出文件路径
- rem 如果不写c:,则对当前目录进行搜索
- for /r c: %%i in (*.exe) do @echo %%i
- rem /d 只能搜索当前目录下的目录
- for /d %%i in (*) do @echo %%i
- rem /l 迭代数值范围
- rem 相当于for(int i=1; i<=5; i+=1)
- for /l %%i in (1,1,5) do @echo %%i
- rem 相当于for(int i=5; i>=1; i-=1)
- for /l %%i in (5,-1,1) do @echo %%i
- rem /f 逐行读取文件a.txt中的内容并输出
- for /f %%i in (a.txt) do echo %%i
- rem 逐行读取文件a.txt中的内容并输出每行中以空格分割的第1个元素
- for /f "delims= " %%i in (a.txt) do echo %%i
- rem 逐行读取文件a.txt中的内容并输出每行中以空格分割的第2个和第3个元素
- rem %%i代表第2个元素,%%j代表第3个元素(必须按字母顺序)
- rem tokens还可以用通配符,例如tokens=*或tokens=2,*可tokens=2-10
- for /f "tokens=2,3 delims= " %%i in (a.txt) do echo %%i %%j
- rem skip=2代表忽略文件的前两行
- for /f "skip=2 tokens=*" %%i in (a.txt) do echo %%i
- rem eol用来指定当某行以什么符号开始时就忽略它
- rem 当某行以#字符开始时,则被忽略
- for /f "eol=# tokens=*" %%i in (a.txt) do echo %%i
- rem 如果路径有空格需要用双引号引起并加上usebackq关键字
- for /f "usebackq" %%a in ("C:\Program Files\a.txt") do echo %%a
- rem 只读取第一行文件内容并把值赋给test
- for /f "delims=" %%i in (123.txt) do (set test=%%i)&(goto :next)
- :next
- echo %test%
- rem 遍历当前目录下的所有文件,并把文件名输出到List.txt中
- dir *.* /b>List.txt
- pause
遍历目录下的特定文件
- @echo off&setlocal enabledelayedexpansion
- @set p1=D:\照片\2017-02-26
- @set p2=D:\照片\2017-02-19
- @set p3=D:\照片\2017-01-20
- @set p=%p1% %p2% %p3%
- rem 遍历多个指定目录
- for %%a in (%p%) do (
- if exist %%a (
- rem 遍历指定目录下的所有*.jpg文件
- for /f "delims=" %%b in ('dir %%a\*.jpg /b') do (
- echo %%a\%%b
- )
- )
- )
- pause
将内容保存到文件
- @echo off
- rem >>代表追加内容到文件尾
- rem echo hello world>d:\test.txt
- rem 前有数字时,数字表示已经打开的文件或设备句柄,
- rem 联合表示将本来输出到某个文件或设备的内容重定向,而非将缺省的标准输出重定向。
- rem 0——stdin,标准输入设备,即键盘
- rem 1——stdout,标准输出设备,即屏幕
- rem 2——stderr,标准错误设备,即屏幕
- rem 想要把某些特殊数字输入到文件需要在前面加转义符^
- echo ^2>test.txt
- @pause
顺序执行多条命令(&&,||,|)
- @echo off
- rem &&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
- rem echo a && echo b && echo c
- rem 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
- rem echo a || echo b || echo c
- rem 管道命令,前一个命令的执行结果作为后一个命令的输入参数
- echo 123 | findstr "23"
- @pause
接收启动命令参数
- @echo off
- rem 打印第1个参数
- echo %1
- rem 打印第2个参数
- echo %2
- rem 去掉参数两边的引号
- echo %~2
- rem @pause>nul这样写就不会显示 请按任意键继续...
- @pause
if语句
- @echo off
- rem 如果目录dir不存在,则创建。
- if not exist dir md dir
- rem 如果输入的第1个参数为a,则打印ok
- rem if "%1"=="a" echo ok
- rem 等于(equ)、不等于(neq)、小于(lss)、小于或等于(leq)
- rem 大于(gtr)、大于或等于(geq)
- rem 2>1
- if 2 gtr 1 echo GTR
- rem errorlevel用来检测上一个dos命令是否执行成功
- rem 环境变量errorlevel的初始值为0,
- rem 当一些命令执行不成功,就会返回一个数值,如:1 ,2 等
- if errorlevel 0 (
- echo 命令执行成功!
- ) else (
- echo 命令执行出错!
- )
- rem 检查某个变量是否已定义
- if defined str1 echo str1已被定义
- @pause
goto :eof
- @echo off
- call :label1
- echo 这里会执行
- pause
- rem 这里的goto :eof的作用是退出批处理
- goto :eof
- echo 这里不会执行
- :label1
- echo 执行labe1
- rem 这里的goto :eof的作用是结束label1的执行
- goto :eof
- echo 这里不会执行
字符串处理
- @echo off
- setlocal enabledelayedexpansion
- rem 字符串处理参见 https://www.cnblogs.com/mq0036/p/3429821.html
- set dir=D:\Test
- for /r %dir% %%i in (*.obj) do (
- rem 必须要先开启延迟变量,否则感号号括起的变量会被当成字符串处理
- set s=%%i
- rem 在循环体内必须用感叹号把变量括起
- rem 输出时去掉路径中的文件后缀
- echo !s:~0,-4!
- )
- pause

- @echo off
- setlocal enabledelayedexpansion
- set /p folder=请输入目录名:
- set dir=.\%folder%
- for /r %dir% %%i in (*.obj) do (
- set s=%%i
- rem 去掉父路径
- set s=!s:%cd%\=!
- rem 去掉文件后缀
- set p=!s:~0,-4!
- echo !p!
- )
- pause

标签: 批处理
日历
最新文章
随机文章
热门文章
分类
存档
- 2025年3月(4)
- 2025年2月(3)
- 2025年1月(1)
- 2024年12月(5)
- 2024年11月(5)
- 2024年10月(5)
- 2024年9月(3)
- 2024年8月(3)
- 2024年7月(11)
- 2024年6月(3)
- 2024年5月(9)
- 2024年4月(10)
- 2024年3月(11)
- 2024年2月(24)
- 2024年1月(12)
- 2023年12月(3)
- 2023年11月(9)
- 2023年10月(7)
- 2023年9月(2)
- 2023年8月(7)
- 2023年7月(9)
- 2023年6月(6)
- 2023年5月(7)
- 2023年4月(11)
- 2023年3月(6)
- 2023年2月(11)
- 2023年1月(8)
- 2022年12月(2)
- 2022年11月(4)
- 2022年10月(10)
- 2022年9月(2)
- 2022年8月(13)
- 2022年7月(7)
- 2022年6月(11)
- 2022年5月(18)
- 2022年4月(29)
- 2022年3月(5)
- 2022年2月(6)
- 2022年1月(8)
- 2021年12月(5)
- 2021年11月(3)
- 2021年10月(4)
- 2021年9月(9)
- 2021年8月(14)
- 2021年7月(8)
- 2021年6月(5)
- 2021年5月(2)
- 2021年4月(3)
- 2021年3月(7)
- 2021年2月(2)
- 2021年1月(8)
- 2020年12月(7)
- 2020年11月(2)
- 2020年10月(6)
- 2020年9月(9)
- 2020年8月(10)
- 2020年7月(9)
- 2020年6月(18)
- 2020年5月(4)
- 2020年4月(25)
- 2020年3月(38)
- 2020年1月(21)
- 2019年12月(13)
- 2019年11月(29)
- 2019年10月(44)
- 2019年9月(17)
- 2019年8月(18)
- 2019年7月(25)
- 2019年6月(25)
- 2019年5月(17)
- 2019年4月(10)
- 2019年3月(36)
- 2019年2月(35)
- 2019年1月(28)
- 2018年12月(30)
- 2018年11月(22)
- 2018年10月(4)
- 2018年9月(7)
- 2018年8月(13)
- 2018年7月(13)
- 2018年6月(6)
- 2018年5月(5)
- 2018年4月(13)
- 2018年3月(5)
- 2018年2月(3)
- 2018年1月(8)
- 2017年12月(35)
- 2017年11月(17)
- 2017年10月(16)
- 2017年9月(17)
- 2017年8月(20)
- 2017年7月(34)
- 2017年6月(17)
- 2017年5月(15)
- 2017年4月(32)
- 2017年3月(8)
- 2017年2月(2)
- 2017年1月(5)
- 2016年12月(14)
- 2016年11月(26)
- 2016年10月(12)
- 2016年9月(25)
- 2016年8月(32)
- 2016年7月(14)
- 2016年6月(21)
- 2016年5月(17)
- 2016年4月(13)
- 2016年3月(8)
- 2016年2月(8)
- 2016年1月(18)
- 2015年12月(13)
- 2015年11月(15)
- 2015年10月(12)
- 2015年9月(18)
- 2015年8月(21)
- 2015年7月(35)
- 2015年6月(13)
- 2015年5月(9)
- 2015年4月(4)
- 2015年3月(5)
- 2015年2月(4)
- 2015年1月(13)
- 2014年12月(7)
- 2014年11月(5)
- 2014年10月(4)
- 2014年9月(8)
- 2014年8月(16)
- 2014年7月(26)
- 2014年6月(22)
- 2014年5月(28)
- 2014年4月(15)
友情链接
- Unity官网
- Unity圣典
- Unity在线手册
- Unity中文手册(圣典)
- Unity官方中文论坛
- Unity游戏蛮牛用户文档
- Unity下载存档
- Unity引擎源码下载
- Unity服务
- Unity Ads
- wiki.unity3d
- Visual Studio Code官网
- SenseAR开发文档
- MSDN
- C# 参考
- C# 编程指南
- .NET Framework类库
- .NET 文档
- .NET 开发
- WPF官方文档
- uLua
- xLua
- SharpZipLib
- Protobuf-net
- Protobuf.js
- OpenSSL
- OPEN CASCADE
- JSON
- MessagePack
- C在线工具
- 游戏蛮牛
- GreenVPN
- 聚合数据
- 热云
- 融云
- 腾讯云
- 腾讯开放平台
- 腾讯游戏服务
- 腾讯游戏开发者平台
- 腾讯课堂
- 微信开放平台
- 腾讯实时音视频
- 腾讯即时通信IM
- 微信公众平台技术文档
- 白鹭引擎官网
- 白鹭引擎开放平台
- 白鹭引擎开发文档
- FairyGUI编辑器
- PureMVC-TypeScript
- 讯飞开放平台
- 亲加通讯云
- Cygwin
- Mono开发者联盟
- Scut游戏服务器引擎
- KBEngine游戏服务器引擎
- Photon游戏服务器引擎
- 码云
- SharpSvn
- 腾讯bugly
- 4399原创平台
- 开源中国
- Firebase
- Firebase-Admob-Unity
- google-services-unity
- Firebase SDK for Unity
- Google-Firebase-SDK
- AppsFlyer SDK
- android-repository
- CQASO
- Facebook开发者平台
- gradle下载
- GradleBuildTool下载
- Android Developers
- Google中国开发者
- AndroidDevTools
- Android社区
- Android开发工具
- Google Play Games Services
- Google商店
- Google APIs for Android
- 金钱豹VPN
- TouchSense SDK
- MakeHuman
- Online RSA Key Converter
- Windows UWP应用
- Visual Studio For Unity
- Open CASCADE Technology
- 慕课网
- 阿里云服务器ECS
- 在线免费文字转语音系统
- AI Studio
- 网云穿
- 百度网盘开放平台
- 迅捷画图
- 菜鸟工具
- [CSDN] 程序员研修院
- 华为人脸识别
- 百度AR导航导览SDK
- 海康威视官网
- 海康开放平台
- 海康SDK下载
- git download
- Open CASCADE
- CascadeStudio
交流QQ群
-
Flash游戏设计: 86184192
Unity游戏设计: 171855449
游戏设计订阅号
