- CMD:Command Prompt(命令输入框)。
- PowerShell:一种易于使用的命令行 shell 和脚本环境。
- CMD是PowerShell的子集。
- DOS(Disk Operating System)是在 DOS 操作系统或 Windows 系统的命令提示符(CMD)中使用的命令。
1.DOS命令介绍
1.1 命令写法
- 命令不区分大小写
- 按上下键可以查看历史命令
- Tab键可以自动补全
- 使用
/?
或/help
可以查看命令用法,用法中的[]
代表可选 - 命令基本格式
命令 参数列表
或主命令 子命令 参数 操作 选项
1.2 基本命令
命令 | 功能 | 举例 |
---|---|---|
echo |
显示 | echo a 将在屏幕上显示a的值 |
pause |
暂停 | pause 需要按任意键才能往下执行 pause > null 将暂停下来,并把文件输入到null中 |
cls |
清屏 | |
exit |
退出 |
1.3 DOS常用命令
命令 | 功能 | 举例 |
---|---|---|
type |
显示文件内容 | type 1.txt |
find |
查找字符串 | find "abc" 2.txt |
fc |
比较文件内容 | fc 1.txt 2.txt |
date |
显示/修改日期 | date /T 只显示日期 |
time |
显示/修改时间 | time /T 只显示时间 |
ping |
网络连接测试 | ping www.baidu.com |
ipconfig |
TCP/IP信息 | |
set /a |
计算表达式 | set /a 6%4 |
shutdown |
关机 | shutdown /s /t 60 shutdown /A 终止命令 |
netstat |
显示协议统计信息和当前 TCP/IP 网络连接 | netstat -a -n 以数字化的形式显示出全部的网络连接 |
net user |
操作用户信息 | net user baby 123 /add 添加用户为baby,密码为123的账户 |
tasklist |
任务列表查看 | tasklist 查看任务进程 |
taskkill |
任务关闭 | taskkill ID (PID) 或taskill 映像名称 |
备注:
同时输入
date /T time /T
cmd命令窗口将输出 日期 时间。
chcp 65001
即可临时修改当前命令行窗口的编码方式为"UTF-8",也可以在"计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor"中新建一个字符创值autorun
,其值域为chcp 65001
每次进入CMD命令窗口系统都将自动执行该命令。
color
命令,给cmd命令窗口设置颜色。
title
命令,给cmd命令窗口设置标题。
1.4 DOS命令运算符
- 多命令
bash
& 顺序执行多条命令,不管命令是否执行成功
&& 顺序执行多条命令,前面的命令错误则不执行后面的命令
|| 顺序执行多条命令,碰到执行正确的命令后将不执行后面的命令
abc & dir & bcd
abc && dir && bcd
abc || dir || bcd
- 重定向
bash
> 输出重定向
>> 追加重定向
< 输入重定向
date /t > 1.txt
time /t >> 1.txt
find "/" < 1.txt
- 管道
bash
| 前一个命令的输出作为后一个命令的输入
dir | find "txt"
1.5 文件操作命令
路径分隔符 :\
当前目录 :.
上一级目录 :..
命令 | 功能 | 举例 |
---|---|---|
dir |
显示文件夹内容 | dir /A |
tree |
显示文件夹树形结构 | tree /F |
盘符: |
进入指定磁盘 | c: d: |
cd |
切换目录 | cd test cd .. |
mkdir 或md |
创建目录 | mkdir test |
rmdir 或rd |
删除目录 | rmdir test |
del |
删除文件 | del 1.txt del /q/a/f *.txt |
rename 或ren |
重命名 | rename a.txt b.txt |
copy |
复制文件 | copy a\1.txt b\1.txt |
move |
移动文件/重命名 | move a\1.txt 2.txt |
2.批处理程序基本语法
将DOS命令写在一个名为
.bat
的文件,这个文件就是批处理文件,且这个批处理文件可以被执行。
2.1 基本结构
建立一个.txt
文本文件中输入以下代码:
bash
@echo off # 关闭回显
......
pause # 暂停。或 pause > nul
再把文件名修改为.bat
。
2.2 运行方式
- 双击运行
- 在
cmd
中运行(可以传参)
2.3 编写注释
REM 注释内容
2.4 使用变量
bash
# 设置变量
set 变量名=变量值
set /a 变量名=表达式 #将表达式的值进行计算赋值给变量
# 取消变量
set 变量名=
# 打印变量
set 变量名 #将出现 变量名=值 的形式
echo %变量名% #将直接打印变量的值
# 列出变量
set
# 引用变量
%变量名%
# 输入变量值
set /p 变量名=提示文字
2.5 使用预定义的变量
变量名 | 值 |
---|---|
%cd% |
当前目录 |
%date% |
当前日期 |
%time% |
当前时间 |
%random% |
0~32767之间的随机数 |
%path% |
环境变量 |
%errorlevel% |
上一个命令的返回值,0表示执行成功 |
%0 、%1 、%2 ...... |
参数。%0 表示命令名 |
3.调用参数
bash
call 可执行文件 [参数列表]
4.条件语句
bash
if [not] 条件 ( #本行左括号不能换行,否则会将所在行视为一条语句
语句块
) else ( #b本行左括号必须跟右括号保持在同一行
语句块
)
# 条件:
errorlevel number # 上一个程序的返回值大于等于number则为true
string1==string2 # 两个字符串匹配则为true
exist filename # 文件名存在则为true
[/I] string1 compare-op string2 # 比较数值或字符串
# /I 忽略大小写
# compare-op包括:
# equ 等于
# neq 不等于
# lss 小于
# leq 小于等于
# gtr 大于
# geq 大于等于
defined variable # 如果定义了该变量则为true
5.跳转语句
bash
goto label # 跳转到标签所在行
:label # 标签以冒号开头
6.循环语句
基本语法
bash
for %%i in (set) do (
语句块
)
# 循环变量用 %% 指定,只能是单字母
# set表示文件集合(也可以是空文件),元素之间以逗号或空格分隔,支持通配符
for %%i in (a,b,c) do (echo %%i)
for %%i in (*.*) do (echo %%i)
扩展语法
-
只遍历文件夹
bashfor /d %%i in (set) do
-
遍历指定文件夹下的所有文件,不指定则表示当前目录。如果set为
.
表示枚举目录树bashfor /r [[drive:]path] %%i in (set) do for /r %%i in (*) do (echo %%i) for /r d:\up %%i in (.) do (echo %%i)
-
遍历数字序列
bashfor /l %%i in (start,step,end) do
-
遍历文件内容
bashfor /f ["options"] %%i in (set) do
7.使用通配符
bash
? # 单个字符
* # 任意字符
8.批处理程序例子
按顺序为文件夹中的文件命名。
批处理中for循环的自增自减问题_Dandelion_gong的博客-CSDN博客_bat for 自增
bash
@echo off
setlocal enabledelayedexpansion # 自增处理
set cnt=0
for %%i in (%1) do (
rename %%i !cnt!.txt #!!表示注意要进行变化
set /a cnt=!cnt! + 1
)
pause