常用写法
输出
@echo off # echo off此语句后所有运行的命令都不显示命令语句
# @表示本行不显示
rem echo 123 # 注释,不运行
chcp 65001 # 声明采用 UTF-8 编码(为了兼容中文)
echo 文字
echo. # 换行
pause # 暂停,也可以写 pause>nul 不显示提示文字
title 现在时间是:%time%
# title 用来在标题栏显示内容
# %time% 表示当前系统时间
# date 显示系统日期
% 表示参数
%var%,变量var
echo %0 # %0 表示当前文件的完整路径+文件名
cls # 清理屏幕显示
# 调用另一个批处理程序,而不终止父批处理程序
call a.bat
文件管理
md d:\hello # make directory 创建文件夹
ren hello hello1 # rename 重命名(文件或目录都可以)
rd hello1 # remove directory 删除目录
move 原A 终B # 将A下的所有文件和目录,移动到B
dir # 显示目录
cd d:/ # change directory 切换目录
# 创建一个内容为【测试内容】的1.txt
echo 测试内容 >1.txt
# 复制文件
copy 1.txt 2.txt
# 删除文件
del 1.txt
start 1.txt # 打开文件
start c:\text # 打开文件夹
# 如果路径有空格,需要加上双引号
参数查看
[命令/?]
del/? # 查看del命令的参数
符号
# > >>都是输出重定向,把前面命令的流文字重定向写入到一个文件中
> # 清楚原有文件内容后写入
>> # 另起一行写入新内容
& # 组合链接命令,按顺序执行,忽略执行失败的命令
&& # 组合链接命令,把前后命令组合当作一个命令执行,出错将不再继续执行
| # 前一行命令的输出当作后一命令的输入
|| # 和 && 相反,遇到一个执行正确的命令就退出,不再执行
系统
# 立刻关机
shutdown -s -f -t 0
# 立即重启
shutdown -r 0
# 结束进程
taskkill /im notepad++.exe
taskkill /pid 1376 -t -f
逻辑控制
# 结合判断进行删除
if exist c:\windows\temp\*.* del c:\windows\temp\*.*
# 复杂判断
set varA=B
if "%varA%"=="A" (echo %varA% is A) else if "%varA%"=="B" (echo %varA% is B) else (echo %varA% is C)
# 循环
# 变量 a 在集合 (1, 1, 5) 中进行遍历,然后回显出值
@echo off
for %%a in (1, 1, 5) do (
echo %%a
)
# 变量 a 从 1 开始,步长为 1,终值为 5,进行循环
@echo off
for /l %%a in (1, 1, 5) do (
echo %%a
)
pause