cmd.exe是windows NT引入的,windows NT以前的叫COMMAND.COM,它是windows的一个shell.是在Windows NT中引入的.空白处shift+右键,可以看到相关运行菜单,这样开始目录就是当前目录.
常用内建命令
cls 清屏
tasklist 列出当前的进程
taskkill 杀死进程
dir 列出当前目录所有文件和文件夹
dir *.txt 列出当前目录下的txt文件
dir /b 只列出相关文件和目录信息,无其他
dir /b /s 列出全路径,无其他信息
dir /b/s *.txt
echo 打印后面字面值,变量用%变量%,字符串不用加引号
^是cmd中的转义
echo <hello>其中的<>被识别成重定向,用echo ^<hello^>转义,将打印<hello>
set 定义变量
set name=** 注意=后面没有空格
后面用%name%访问
set name= 等号后面没有内容相当于删除name
cd 用于切换目录,但是不能跨盘符,
cd 返回当前目录
cd D:\12 切换当前目录到D:\12
cd .. 返回上级目录,空格要用引号
color [bf]
设置背景色和前景色
color 07
默认的黑色背景和白色前景
0 黑色
1 蓝色
2 绿色
3 水绿
4 红色
5 紫色
6 黄色
7 白色
del 删除文件
不经过回收站.del *.* 删除当前目录所有文件
/p 提示确认删除
/s 同时删除遍历子目录下的相关文件
/q 安静默认 del /q *.*不经过确认
copy 复制文件,也可用于相同目录的文件重命名
copy source.dat dst.dat
copy /a 以ASCII模式复制,文件中的Ctrl+Z字符被解释成文件结束
copy /b 二进制模式复制
copy /y 覆盖文件不经过确认
copy /-y覆盖文件前确认
exit终止
exit /b终止脚本但是不退出cmd,而exit终止后直接退出cmd
exit /b 1 将1作为退出码
goto label
转到:lable处
call 脚本
调用其他脚本
md 创建目录包含不存在的中间目录
move 移动文件
move source.dat dst.dat
move /y source.dat dst.dat 覆盖不提示
move /-y source.dat dst.dat 覆盖提示
pause 暂停直至输入
popd/pushd 目录出栈压栈,可用于切换根目录
rd 删除目录
rd /s 删除目录和子目录
rd /s /q 删除目录和子目录不经过确认
rename 修改文件夹名称
rename 旧名称 新名称
title 标题栏名称
相关环境变量
%PATH%系统的搜索路径
修改PATH
set PATH=%PATH%;C:\windows
%CD% 当前目录
%DATE% 当前日期
%TIME% 当前时间
%RANDOM% 0~32767之间的随机数
%ERRORLEVEL% 之前程序的退出状态,非0为异常,一般用if %ERRORLEVEL% 来进行相关异常处理流程,或者
if errorlevel == 0 echo program err
I/O重定向
重定向stdout到文件
tasklist>tasks.txt 新建文件
tasklist>>tasks.txt 更新文件
<file 从文件读取到stdin
>file 写stdout到文件
>>file 附加stdout到文件
1>file写stdout到文件
1>>file附加stdout到文件
2>file写stderr到文件
2>>file附加stderr到文件
2>&1 将stderr重定向到和stdout同样的流
>nul 重定向到nul忽略相关信息
其它信息
ping www.biadu.com & ping www.hao123.com
两个命令顺序执行
ping www.biadu.com && ping www.hao123.com
第一个命令错误后返回状态不为0才执行第二条命令
流程控制
if exist C:\data(
echo 文件存在
)else(echo 文件不存在)
文件是否存在
if exist path
或者
if not exist path
批处理文件
rem 注释文本
setlocal/endlocal 保存恢复现场
@用于批处理文件中,用于不显示命令本身,之显示命令的结果
或者第一行用@echo off,后面的就不用@了
cmd /a或者/u用于当前是assic还是unicode输出
弹出对话框
mshta vbscript:msgbox("我是提示内容",64,"我是提示标题")(window.close)