简介
本文介绍Windows的DOS命令的用法(有示例)。包括:命令技巧,管理命令,网络命令,文件命令,目录命令。批处理。
命令技巧
运行命令方法
法1:"运行"对话框(Win+R),输入cmd,打开控制台命令窗口...
法2:cmd /c 命令 和 cmd /k 命令的方式来直接运行命令
注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口
法2:在当前窗口运行命令
用windows+E进入文件路径=> shift+鼠标右键=> 在此处打开命令窗口(M)
参数
cmd /c dir //执行完dir命令后关闭命令窗口。(默认)
cmd /k dir //执行完dir命令后不关闭命令窗口。
cmd /c start dir //打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir //打开一个新窗口后执行dir指令,原窗口不会关闭。
注意:上述命令用于bat时要在cmd前边加@
命令行窗口技巧
作用 | 操作 |
复制内容 | 右键弹出快捷菜单,选择“标记(K)”,然后选中所需复制的内容,然后右键 |
粘贴内容 | 右键弹出快捷菜单,选择“粘贴(P)” |
当前位置运行命令 | 文件夹空白处按住Shift,右键弹出快捷菜单,可看到“在此处打开命令行窗口” |
历史命令 | 上下方向键 |
补全 | tab |
注释(有回显) | rem // 在批处理文件中添加注解,其后的命令不会被执行,但会回显 |
注释(无回显) | :: // ::也可以起到rem的注释作用,且不会有回显 |
中断命令 | ctrl+z //或者ctrl+c |
获取帮助 | command /? // 查看command命令帮助说明 |
其他技巧
(1)命令参数的路径
要使用反斜杠'\',不要使用正斜杠'/' 如:del d:\test2\file\my.txt
若存在空格,应使用双引号将路径引起来 如:del "d:\program files\file\my.txt"
(2)文件和目录名字符要求
文件及目录名中不能包含下列任何字符:\ / : * ? " < > |
(3)标号
任何以冒号(:)开头的字符行, 在批处理中都被视作标号(label), 而直接忽略其后的所有内容
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别
无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用,::常被用作注释
管理命令
命令 | 作用 | 示例 |
at(win10弃用) | 在特定日期和时间运行命令 | |
gpedit.msc | 组策略 | |
logoff | 注销当前用户 | |
msconfig | 开机启动和服务项的关闭。 界面中第四项:启动。 | 添加开机启动项的方法: 开始=> 所有程序=> 右键“启动”=> 打开=> 将软件快捷方式放进来 此时,运行msconfig可以看到已经添加到启动项 |
net start/stop | 开启/关闭 服务 | net start "VMware Authorization Service" |
regedit | 打开注册表 | |
services.msc | 打开服务管理 | |
shutdown | 关机/重启 | shutdown -s -t 3600 //3600秒之后关机 shutdown -r -t 3600 //3600秒之后重启 shutdown -a //取消计划 |
systeminfo | 查看当前计算机的综合信息 | systeminfo | findstr /i "初始安装日期 系统启动时间" 只查看当前计算机的初始安装日期和系统启动时间 |
tasklist | 显示进程列表 | tasklist | findstr 进程号 //查看该进程号所对应的进程信息 |
taskkill | 结束进程 | taskkill -f -pid 进程号 //结束该进程号的进程 taskkill -f -im notepad++.exe //关闭notepad++程序 |
tskill | 结束进程 | tskill 进程号 //结束该进程号的进程 tskill notepad++.exe //关闭notepad++程序 |
网络命令
命令 | 作用 | 示例 |
arp | 显示、修改局域网的IP地址-物理地址映射列表 | |
ipconfig | 网络配置 | ipconfig /all //查看网络信息 ipconfig /flushdns //清除dns缓存 |
msg | 给用户发送消息 | |
netstat | 查看网络状态。 win10新加入,跟Linux命令基本一样用 | netstat -ano | findstr "80" //查看80端口是否被占用 //最后一列是进程号 结束进程方法:taskkill -f -pid 进程号 |
文件/目录
命令 | 作用 | 示例 |
cd | 切换目录 | cd .. cd prj\src 加/d参数可以进入任意路径(可以切换盘符) cd /d d:\ //等价于d: cd /d d:\src |
cls | 清除dos内容 | cls |
copy xcopy robocopy | 拷贝文件 | cp test.txt ..\ xcopy和robocopy是高级的拷贝命令 xcopy c:\bat\hai d:\hello\ /d:12-29-2010 // 将c:\bat\hai中的2010年12月29日后更改的文件拷贝到d:\hello中 |
del | 删除文件 | del test.txt del dir //删除dir目录下所有文件。 |
dir | 显示目录内容 | dir //显示文件夹和文件 dir /S //递归显示当前目录及其子目录 |
find | 查找字符串 | find "abc" c:test.txt |
findstr | 查找字符串 | type a.txt | findstr "hello" //在a.txt的打印信息中查找hello |
md | 建立目录 | md tmp |
move | 移动文件 | move test.txt dir |
pushd/popd | 使用栈维护目录 | pushd c:\mp3 // 将当前目录d:\mp4入栈,并切换当前目录为c:\mp3 |
rd | 删除目录/目录 | rd tmp //删除tmp空目录 /s 删除所有文件夹(包括子文件夹)和文件(无论是否是空的) /q 不询问,直接执行 |
replace | 替换文件 | replace d:\love.mp3 d:\mp3 // 使用d盘下的love.mp3强制替换d盘mp3目录中的love.mp3文件 |
ren | 重命名文件 | ren test.txt test.txt1 |
tree | 显示目录树 | tree dir /F /F 显示每个文件夹中文件的名称。(默认不显示) |
ipconfig | 网络配置 | ipconfig \all |
文件查看
命令 | 作用 | 示例 |
type | 显示文本文件内容 | type c:\11.txt |
more | 逐屏显示文件内容 | more conf.ini // 逐屏的显示当前目录下conf.ini的文本内容 【空格:下一屏 q:退出 】 |
批处理(命令)
命令 | 作用 | 示例 |
call | 调用脚本(等待脚本执行结束) | call ff.bat // 调用执行ff.bat脚本(ff.bat脚本执行完原脚本才会往下执行) |
cls | 清除屏幕 | |
color | 设置当前cmd窗口背景色和前景色(前景色即为字体的颜色) | color // 恢复到缺省设置 color 02 // 将背景色设为黑色,将字体设为绿色 |
date | 显示或设置当前日期 | date /t // 显示当前日期 date // 设置新的当前日期(格式:YYYY/MM/DD),直接回车则表示放弃设置 |
echo | 显示内容 | echo hehe //在控制台输出呵呵 echo hehe > hehe.txt //将hehe写入hehe.txt(不存在则创建,存在则覆盖) |
exit | 退出当前cmd窗口实例 | exit 0 // 退出当前cmd窗口实例,退出码设为0(0表示成功,非0表示失败) exit /B 1 // 退出当前bat脚本,并将ERRORLEVEL系统变量设置为1 |
hostname | 显示当前机器名 | |
label | 显示当前分区的卷标,同时提示输入新卷标 | label c:system 设置c盘的卷标为system |
pause | 暂停批处理程序,并显示出:请按任意键继续.... | |
使用设置好的打印机来打印 | print 1.txt // 使用设置好的打印机来打印1.txt文本文件 | |
prompt | 修改命令提示符 | prompt orz: // 将命令提示符修改为orz: |
start | 启动一个新窗口运行某程序或命令。 不等待此命令执行结束即执行下一条命令。 | start "D:\test.exe" start /B "D:\test.exe" //启动test.exe,但不关闭本窗口 start explorer f:\ // 调用资源管理器打开f盘 strat iexplore "www.qq.com" // 启动ie并打开www.qq.com start ff.bat // 启动开始执行ff.bat(启动ff.bat脚本后,原脚本继续执行,不会等ff.bat脚本执行完) |
time | 显示或设置当前时间 | time /t // 显示当前时间 time xxx // 设置新的当前时间(格式:hh:mm:ss),直接回车则表示放弃设置 |
title | 修改当前cmd窗口的标题栏文字 | title mytitle |
ver | 显示当前windows系统的版本号 | |
vol | 显示当前分区的卷标 | |
winver | 弹框显示当前windows系统信息 |
批处理(用法)
分隔
每条命令之间用回车分割,而不是使用分号。
执行命令后不关闭窗口
法1. 使用@cmd /k
cd /d D:\dev\
test.exe
@cmd /k
法2. 使用/B参数
start /B test.exe
法3:使用pause
start test.exe
pause
注意:不建议使用pause,因为它只能停止,不能持续获得程序的输出。
符号
符号 | 含义 | 示例 |
& | 顺序执行多条命令,不管命令是否执行成功 | cd /d d:\src&work.exe /o c:\result.txt // 先将当前工作目录切换到d:\src下,然后执行work.exe /o c:\result.txt命令 |
&& | 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令 | find "ok" c:\test.txt && echo 成功 // 如果找到了"ok"字样,就显示"成功",找不到就不显示 |
|| | 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令 | find "ok" c:\test.txt || echo 不成功 // 如果找不到"ok"字样,就显示"不成功",找到了就不显示 |
| | 管道命令 | dir *.* /s/a | find /c ".exe" // 先执行dir命令,然后对输出结果(stdout)执行 find命令(输出当前文件夹及所有子文件夹里的.exe文件的个数) |
> | 将当前命令输出以覆盖的方式重定向 | dir bin 2> p1.txt // (stdout)打印在屏幕上,错误(stderr)以重定向到p1.t dir bin 2>nul // 屏幕上不打印命令的错误(stderr),输出结果(stdout)仍会 打印(注:bin目录不存在时,会输出错误信息) |
>> | 将当前命令输出以追加的方式重定向 | |
< | 从文件中获得输入信息,而不是从屏幕上,一般用于date time label等需要等待输入的命令 | date <temp.txt // temp.txt中的内容为2005-05-01 |
@ | 在执行命令前,不打印出该命令的内容 | @cd /d d:\me // 执行该命令时,不打印出命令的内容:cd /d d:/me |
, | 用来代替空格使用 | dir,c:\ // 相当于:dir c:\ |
; | 命令相同的时候,可以将不同的目标用;隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告但程序还是会继续执行 | dir c:\;d:\;e:\ // 相当于顺序执行:dir c:\ dir d:\ dir e:\ |
其他命令
命令 | 作用 | 示例 |
chcp | 查看命令行环境字符编码(为一个全局设置) 936 -- GBK(一般情况下为默认编码) 注:cmd的属性窗口,选项标签页也可以查看当前代码页 |
其他网址
Windows 批处理脚本学习教程