原文:/article/detail?id=MA21jf10fo17
这是我在学习win系统CMD命令总结的几个常用的命令。
介绍
.bat和.cmd文件后缀
常用命令
1.简介
2.注意
/?查看帮助
dir 文件夹命令
cd 切换文件夹命令
ver windows的命令,查看版本
time 查看并改变时间
date 查看日期并改变
cls 清屏
pause 停住,按任意键继续
启动程序
copy 复制
move 移动
del 删除
md 建立目录(mkdir也是)
rd 删除目录(如果目录里有子目录或者文件,则需要加s)
ren 重命名(文件和文件夹)
xcopy 复制文件夹下的文件和目录到目标目录
echo 直接输出字符串
环境变量
删除文件夹
set 环境变量
if语句
if exist判断文件是否存在
goto
start多进程
exit 退出当前cmd窗口实例
call和goto
color修改窗口的颜色
color g 调出颜色参考
color 恢复初始颜色设置
color 前景色背景色
重定向操作符
通配符
for循环
title改名doc窗口名
快捷键
find 在文件中搜索字符串
findstr 在文件中搜索字符串(可以为窗口所用)
clip
| 管道符
type 显示文件的文本内容
将输出写入文件
注释
doc命令中nul表示空
命令连接符
fc 比较两个文件中的不同(powershell中不支持)
comp 也是比较两个文件的不同
^G (CTRL+G)参数一个提示音
more 逐屏显示内容
assoc 修改文件关联(powershell中不支持)
attrib 显示或更改文件属性
ftype 修改文件关联(powershell中不支持)(建议用图形化修改)
label 创建、更改、删除磁盘卷标
添加开机启动项
ren 重命名(文件)文件夹
convert(将fat卷转换为ntfs)
format(格式化命令)
print(打印文件)
replace(替换文件)
at(计划任务)AT 命令已弃用。请改用 schtasks.exe。
path为可执行文件显示或设置一个路径(只是当前)
subst映射新的分区
mklink创建符号链接(有点像快捷方式,但又不太用)
compact压缩解压缩(不怎么用)
tasklist显示进程
taskkill杀死进程
systeminfo显示系统的一些信息
msinfo32图形化显示系统信息
query查询电脑的进程、会话、(和tasklist相似)
tree以图形(树形)的方式显示文件夹路径信息(和dir相似)
后面的基本用不到
获取时间的毫秒数
介绍
命令行在我们平时开发过程中用的很多,有的程序我们可以直接开子进程调用命令行来执行会比在程序里面写来的更快更直接。比如完成文件夹和文件夹下文件的复制,如果用开发语言来写就需要进行递归,从而导致过程繁琐,效率低下。
但是命令行也有一个不好的地方,就是平台的更改会导致命令行的api变化。
但总的来说,学习一下docs。我们在工作中可以更便捷的操作,也可以使我们对计算机有更进一步的了解。
.bat和.cmd文件后缀
.bat的兼容比.cmd好,更具体的可以自行查询。
常用命令
1.简介
命令不区分大小写
/ 和 \ 也是不区分的(有时候 / 会报错,所以window尽量使用 \ )
2.注意
编码方式要选择ANSI
不能直接复制utf-8的代码,不然就前几个字符时读不到的
如果非要复制,就到新的编码中吧回车都删除了,在重新按一遍就好了
/?查看帮助
命令 /? 可以查看该命令的介绍
dir 文件夹命令
dir 查看该目录文件和文件夹
cd 切换文件夹命令
cd /? 查看介绍
cd … 返回上一级
cd 文件夹名 进入现在目录下的该文件夹
cd / 回到根目录
c: 切换盘符
ver windows的命令,查看版本
time 查看并改变时间
date 查看日期并改变
cls 清屏
pause 停住,按任意键继续
这个类似于设置断点,命令运行到这一步时需要我们有操作才会继续往下。
启动程序
得到程序启动的绝对路径
pause(么有这个,doc窗口就会直接消失)
copy 复制
copy 原文件绝对或相对路径 目标路径(用\)
move 移动
move 原文件绝对或相对路径 目标路径
del 删除
del 源文件路径
md 建立目录(mkdir也是)
md 目录名
rd 删除目录(如果目录里有子目录或者文件,则需要加s)
rd 目录名
rd 目录名/s
ren 重命名(文件和文件夹)
ren 和复制相似
xcopy 复制文件夹下的文件和目录到目标目录
xcopy /? 查看介绍
xcopy 要复制的目录 目标目录地址
xcopy 要复制的目录 目标目录地址 /e(可以复制目录下的文件夹)
——————————————————————————————————
echo 直接输出字符串
echo 123456
echo. 输出换行
echo off 关闭后面的命令显示 (默认是on)
echo off 接下来的命令不显示,只显示运行结果
@echo off echo的命令也不显示(和他下面其他的命令)
——————————————————————————————————
环境变量
echo %temp% 两个百分号夹着变量名成为环境变量,是提前在电脑定义好的
——————————————————————————————————
删除文件夹
@echo off
dir %tepm%
echo 按任意键继续
pause
rd %temp% /s /q (/q 是需要用户确认)
echo 删除完毕 按任意键继续
pause
——————————————————————————————————
set 环境变量
set 查看环境变量
set abc=123465 设置环境变量(窗口关闭后变量就没有了)
set abc 输出变量值
set /a abc=1+2 操作变量
set /p user= 用户输入(使用在bat时,他会暂停等到用户的输入,之前赋的值会被覆盖,有点像停住,让用户更新值)
【注意:设置变量时不用百分号,使用变量时要加百分号】
set /p dirname=请输入您要创建的文件夹名称:
md %dirname%
——————————————————————————————————
if语句
(举例)
【这里出了中文乱码了,】
@echo off
set /p var1=请输入第一个值
set /p var2=请输入第二个值
if “%var1%”==”%var2%” (echo 输入的两个字符相同) else echo 输入的两个字符相同
pause
goto 跳去执行其他代码
if /i “%var1%”==”%var2%” (echo 输入的两个字符相同) else echo 输入的两个字符相同
(/i 可以忽略大小写)
if exist判断文件是否存在
if exist 文件的路径 echo 存在 判断文件是否存在
if exist 文件的路径 (echo 存在) else echo 不存在 判断文件是否存在
————————————————————————————————————
goto
(举例)这里还附带学历函数
下面是代码示例
set /p x=请输入
if %x%==a goto aaa
if %x%==b goto bbb
:aaa
echo 执行了aaa
goto end
:bbb
echo 执行了bbb
goto end
:end
pause
(健壮了)
下面是代码示例
@echo off
:c
set /p x=请输入
if %x%==a (goto aaa) else if %x%==b (goto bbb) else goto end
:aaa
echo 执行了aaa
goto end
:bbb
echo 执行了bbb
goto end
:end
goto c
————————————————————————————
start多进程
start /max nodepad.exe 最大化打开记事本
【
注意,直接运行是单线程的
使用start是多线程调用
直接调用bat会在当前窗口运行
start调用bat会在新窗口运行
但是同一窗口可以共用变量
start调用的不同窗口也可以共用变量
】
exit 退出当前cmd窗口实例
————————————————————————————
call和goto
call相当于调用函数,call函数执行完还会返回
goto相当于直接去了,不返回的
call 可以直接call bat文件
call 可以传递参数 调用文件或者函数后紧跟参数,使用空格隔开多个参数,被调用的函数(文件)使用%1 %2 %3……来接收参数
————————————————————————————
color修改窗口的颜色
color g 调出颜色参考
color 恢复初始颜色设置
color 前景色背景色
————————————————————————————
重定向操作符
更新(没有时会先创建文件)
添加数据 (没有时会先创建)
(举例)可以直接在代码后加,这样本应该在屏幕输出的字符串就输出到文件了
ping 192.168.1.1>1.txt
ping 192.168.1.1 -t>1.txt (加-t会一直写)
ipconfig >1.txt
————————————————————————————
通配符
代替一个或多个字符
? 代替一个字符
?? 代替两个字符(依次)
cd d* 进入首字母为d的一个文件夹
cd a? 进入首字母为a的并只有两个字符名的第一个文件夹
————————————————————————————
for循环
【
这里注意关于变量
1.在doc窗口是只需要一个百分号%i
2.在bat中需要两个百分号%%i
】
(举例)
for %%i in (.)do echo %%i 显示当前目录的文件
for 变量 in 文件名(变量名)do
for /d %%i in (.)do echo %%i 显示当前目录的目录和文件
for /d %%i in ()do echo %%i 显示当前目录的目录
for /r %%i in ()do echo %%i 显示当前目录的目录和文件目录下目录的内容
【这个类似普通编程】
for /l %%i in (1,1,6)do echo %%i 括号里是参数(起始,步长,终止)
for /f %%i in (a.txt)do echo %%i a.txt中的每一行循环输出
————————————————————————————
title改名doc窗口名
title 改标题
————————————————————————————
快捷键
f3 ↑
f7 历史的命令表
ctrl+c 终止进程
tab 自动补全
【】【】学到了find【】【】
————————————————————————————
find 在文件中搜索字符串
【注意:powershell中不能用find,不然就会报参数不对,请使用findstr,cmd中才可以使用find】
(格式要采用ansi才可以正常搜索)
find “要搜索的字符” 文件名称
find /v“不要搜索的字符” 文件名称
find /n /v“不要搜索的字符” 文件名称 /n是显示行号
findstr 在文件中搜索字符串(可以为窗口所用)
(可以有一般表达式,有点像正则)
findstr /v /r “[a-z]” 文件路径
这两个命令可以看一下解释,解释非常的清楚
——————————————————————————
clip
DIR | CLIP 将一份当前目录列表的副本放入 Windows 剪贴板。
CLIP < README.TXT 将 readme.txt 的一份文本放入 Windows 剪贴板。
——————————————————————————
| 管道符
将输出的字符传到下一个命令
tasklist | findstr “360”
tasklist |findstr “360” | findstr “360se” 可以多个使用
——————————————————————————
type 显示文件的文本内容
还可以创建文件
———————————————————————————
将输出写入文件
ipconfig >1.txt
————————————————————————————
注释
1.::(两个冒号后面加注释)
2.rem 注释内容(不能用于重定向符号和管道符号)
3.echo 注释内容(不能用于重定向符号和管道符号,实际是把内容输入到空文件) >nul
doc命令中nul表示空
——————————————————————————
命令连接符
& 命令一次运行
&& 前面的命令运行成功了才运行后面的命令
|| 有一个成功就停止
powershell中不支持
——————————————————————————
fc 比较两个文件中的不同(powershell中不支持)
comp 也是比较两个文件的不同
(淘汰了)
——————————————————————————
clip 剪切板
dir | clip
ping | clip
——————————————————————————
^G (CTRL+G)参数一个提示音
——————————————————————————
more 逐屏显示内容
help | more
——————————————————————————
assoc 修改文件关联(powershell中不支持)
assco .zip 显示关联程序
——————————————————————————
attrib 显示或更改文件属性
attrib -+属性即可
——————————————————————————
ftype 修改文件关联(powershell中不支持)(建议用图形化修改)
——————————————————————————
label 创建、更改、删除磁盘卷标
label h: 查看、修改H盘的卷标
——————————————————————————
添加开机启动项
将bat文件拖到shell:startup中就可以了
——————————————————————————
ren 重命名(文件)文件夹
ren 1 b 将文件夹1重命名为b
ren 1.txt 2.txt 将文件1.txt重命名为2.txt
REN 重命名文件。
RENAME 重命名文件。
convert(将fat卷转换为ntfs)
(无损转换)
format(格式化命令)
shkdsk(扫描磁盘错误)
——————————————————————————
print(打印文件)
print 文件 打印文件
——————————————————————————
replace(替换文件)
replace 文件01 文件02 把文件1替换成文件2
——————————————————————————
at(计划任务)AT 命令已弃用。请改用 schtasks.exe。
创建任务
at 20:00 calc.exe 晚上八点运行计算器
at 22:00 shutdown -s -t 30 晚上十点延迟30分钟关机
删除任务
at 1 /delete 删除id为1的计划任务
at all /delete 删除所有计划任务
——————————————————————————
path为可执行文件显示或设置一个路径(只是当前)
path 路径 修改当前窗口的执行路径【比较好用还】,有点像cd到那里
subst映射新的分区
应该不怎么用
mklink创建符号链接(有点像快捷方式,但又不太用)
mklink /h 222.txt 111.txt 将文件222.txt映射到111.txt文件
compact压缩解压缩(不怎么用)
tasklist显示进程
taskkill杀死进程
systeminfo显示系统的一些信息
msinfo32图形化显示系统信息
query查询电脑的进程、会话、(和tasklist相似)
tree以图形(树形)的方式显示文件夹路径信息(和dir相似)
后面的基本用不到
ftp用的不多了,建议用第三方
reg注册表命令(添加删除导入导出)
prompt修改命令提示符(基本不用,一般都是默认路径)
sc系统服务的启停
chcp修改窗口显示的编码
schtask计划任务
nul表示空设备
dir >nul 把dir的输出传给空设备
mode配置系统设备(可以设置行和列,编码啊什么的)有点像配置当前窗口
sort对数据进行排序
sort 1.txt>1.txt 将文件1.txt内容进行排序在保存
rem注释
pushd保存
pushd c:\ 切换到c盘目录执行并将刚刚的路径保存
popd还原
popd 更改到上一个保存的命令执行路径
(有点像编程的入栈的出栈)
exit退出cmd窗口(可以写退出代码提示)
net服务
start
stop
user添加删除修改
loaalgroup组的操作
accounts设置账户
view查看当前网络的共享资源
share创建删除查看共享资源
use链接或断开远程共享资源
session和远程计算机建立会话
【学完了】
获取时间的毫秒数
echo %DATE:0,4%-%DATE:5,2%-%DATE:~8,2% %TIME:0,2%:%TIME:3,2%:%TIME:6,2%.%TIME:9,2%
——————————
转载请注明出处!!!
本文首发:
ic365club是知识分享和学习交流的扁平化平台,欢迎广大爱好学习的伙伴一起加入。