命令行
显示如何使用命令: /?
find /? (find 命令的作用)
echo 打印输出
echo 内容 (与log类似)
echo on/off (开启/关闭回显)
echo off 内容 pauseecho 内容 >> test.txt 在test文件中写入内容
@echo off 内容 pause (暂停)
@ 符号 表示@后的命令不显示
进入目录: cd
cd 内容 (path路径,进入到对应文件夹下,如果不是当前盘符,需要执行 盘符: (e:))
cd.. (进入父目录)
cd /d e:(cd /d 盘符名称: 进入某一个盘符)
文件夹信息:dir
dir (显示当前文件夹下的文件夹和文件名称,包含文件信息)
dir /b(只显示当前文件夹下的文件夹和文件名称)
dir /p (分页显示当前目录中的子文件夹与文件)
dir /ad (显示当前目录中的文件)
dir path (显示path文件夹下的文件信息)
显示文件夹目录结构:tree
tree (显示当前文件夹目录结构)
tree 路径 (显示对应文件夹里的目录结构)
创建目录: md
md 文件夹名
md 文件夹路径
删除目录: rd
rd 文件夹名/文件夹路径
rd 文件夹名 /s /q (删除当前目录中的文件夹包括子目录和子文件 /s 表示删除子文件夹与子文件 /q 表示不需要删除请求 安静模式)
拷贝: copy
copy test.txt e:\ (将text.txt 文件拷贝到e盘目录下)
coyp test.txt 路径 文件名 (将文件拷贝到对应路径下,并且重命名)
copy /y test.txt e:\ (将文件拷贝到对应路径下 /y 不询问是否覆盖)
copy 文件夹名称 文件夹路径 (拷贝文件夹下的文件到目标路径(不递归子目录))
copy /y 文件夹名称 文件夹路径
更强大的拷贝: xcopy
xcopy 文件夹路径 目标文件夹路径 (拷贝文件夹下的文件到对应目录 不包含子目录)
xcopy 文件夹路径 目标文件夹路径 /s (拷贝文件夹,包含子目录)
xcopy 文件夹路径 目标文件夹路径 /d:月-日-年 /s /y(将文件夹里的某个时间改变之后的文件拷贝到目标路径)
移动文件: move
move 文件名称 文件路径
move *.txt 文件夹路径 (移动所有后缀为txt的文件到指定路径下 )
move 文件夹 目标文件夹
删除文件 del
del 文件夹 (删除当前目录下的文件夹中的所有文件 非只读文件)
del /f 文件夹 (删除当前目录下的文件夹中的所有文件 包括只读文件)
替换文件 replace
replace e:\work\测试.txt e:\q (使用 e:\work\测试.txt 去替换 e盘下面q文件夹下的 测试.txt)
bat 批处理相关
@echo off
title TestBat (窗口标题)
color 2 (字体颜色)
mode con cols=100 lines=20 (cols 宽 lines 高)
pause
显示文本内容: type
在文件中搜索字符串:find
注释 rem
if goto 使用
@echo off
if "%1"=="bb" goto A
echo 不相等
pause
:A
echo 相等
pause
if else
@echo off
if "%1"=="bb" (
echo 相等
) else (
echo 不相等
)
pause注意括号空格与位置
@echo off
if exist test.bat (
echo 存在test.bat文件
) else (
echo 不存在test.bat文件
)
pauseexist 文件是否存在
call 调用其他的.bat文件 或者 .cmd文件
@echo off
echo 调用test.bat
call test.bat
start 启动一个程序
start "E:\Steam\Steam.exe"
choice 指定创建的选项表
@echo off
choice /c ync /m "确认Y否N,取消C"
if errorlevel 3 goto C
if errorlevel 2 goto N
if errorlevel 1 goto Y:C
echo 取消
pause:N
echo 否
pause:Y
echo 确认
pause
for循环
- cmd 窗口:for %i in (command1) do command2 (引用变量为%i)
- bat 窗口: for %%i in (command1) do command2 (引用变量为%%i)
- /L 控制循环次数
- /F 输出文件
@echo off
for %%i in (a b c) do echo %%i
pause从1 开始每次加2 不超过10
@echo off
for /L %%i in (1 2 10) do echo %%i
pause@echo off
for /F "delims=;" %%i in (test.bat) do echo %%i
pausedelims=; 每一行已;为分割符
时间: date time
@echo off
date
echo %date:~0,4% 年
echo %date:~5,2% 月
echo %date:~8,2% 日
set t=%date:~0,4%
echo %t% 年
time
echo %time:~0,4% 时
echo %time:~3,2% 分
echo %time:~6,2% 秒
pauseset 赋值 %t% 取值
字符串操作
@echo off
set t=测试字符串截取
echo %t:~0,2%
echo 字符串替换
echo 替换前:%t%
set t=%t:截取=替换%
echo 替换后:%t%
pause%~f1 将%1扩充到一个完全合格的路径名
%~d1 仅将%1扩充到一个驱动器号
%~p1 仅将%1扩充到一个路径
%~n1 仅将%1扩充到一个文件名
%~x1 仅将%1扩充到一个文件扩展名
%~s1 扩充的路径只含有短名
%~a1 仅将%1扩充到文件的文件属性
%~t1 仅将%1扩充到文件的日期/时间
%~z1 仅将%1扩充到文件的大小
%~dp1 仅将%1扩充到一个驱动器号和路径
%~nx1 仅将%1扩充到一个文件名和扩展名