# CMD常用命令
# 1. 打开 CMD 窗口
步骤:
- win + R
- 输入
cmd后回车,打开 CMD 窗口 - 输入
powershell后回车,打开 PowerShell 窗口
# 2. 目录
# 2.1. 查看目录
# 查看当前目录的文件夹及文件
dir
# 2023/06/29 15:32 <DIR> .
# 2023/06/29 15:32 <DIR> ..
# 2023/05/20 16:16 587 .eslintrc.js
# 2023/06/27 11:53 544 app.js
# 2023/06/29 15:32 <DIR> miniprogram_npm
# 2023/06/30 10:39 <DIR> node_modules
# 9 个文件 6,868 字节
# 6 个目录 220,553,068,544 可用字节
dir /b
# .eslintrc.js
# app.js
# app.json
# app.wxss
# miniprogram_npm
# node_modules
# 查看目录树及其文件
dir /b /s
参考:windows-commands/dir (opens new window)
# 2.2. 查看当前目录
cd
## c:\install
# 已被 cd 命令替代
chdir
### W:\dev
# 2.3. 切换目录
# /D :切换到不同盘符的目录
cd /D c:\install
## c:\install>
# 2.4. 创建目录
# 创建单个目录
mkdir .\dir1
# 创建多级目录
mkdir .\dir1\dir2
# 在根目录中创建,当前盘符的根目录
mkdir \dir1\dir2
参考:windows-commands/mkdir (opens new window)
# 2.5. 删除目录(树)
# rmdir [<drive>:]<path> [/s [/q]]
# /s 删除目录树(非空目录)
# /q 不进行确认操作
rmdir /s/q node_modules
参考:windows-commands/rmdir (opens new window)
# 2.6. 移动/剪切 目录
# 将 C:\OldFolder 目录移动到 C:\NewFolder 目录下,
# 并且保持原来的目录名 OldFolder
move C:\OldFolder C:\NewFolder\OldFolder
# OldFolder 就会被重命名为 NewName 并移动到C:\NewFolder
move C:\OldFolder C:\NewFolder\NewName
# 如果 C:\NewFolder\NewName 已存在,则进行覆盖
move C:\OldFolder C:\NewFolder\NewName /Y
# 2.7. 复制目录
# 将 b 目录下的所有内容拷贝到 c 目录
xcopy D:\a\b D:\c /E /I /Y
/E参数表示复制目录和子目录,不包括空目录。/I参数表示如果目标不存在,则创建目标目录(D:\c)。/Y参数表示覆盖现有文件而不提示。/Q安静模式
参考: Windows运维:XCOPY命令使用笔记 (opens new window)
# 3. 文件
# 3.1. 查看文件内容
# type [<drive>:][<path>]<filename>
type ./1.txt
参考:windows-commands/type (opens new window)
# 3.2. 创建文件
# 创建非空文件
echo 123 > 1.txt
# 创建空文件
type NUL > 1.txt
# 创建空文件
fsutil file createnew 1.txt 0
参考:windows-commands/fsutil (opens new window)
# 3.3. 删除文件
del 1.txt
# 安静模式
del /q 1.txt
# 强制删除
del /f 1.txt
参考:windows-commands/del (opens new window)
# 3.4. 拷贝文件
示例:
# 将 1.text 拷贝到 d:\abc
copy 1.text d:\abc
参考:windows-commands/copy (opens new window)
# 3.5. 解压 zip 文件
使用 PowerShell:
# 将 1.zip 解压到当前目录
Expand-Archive .\1.zip .
使用 CMD:
powershell -command "Expand-Archive .\1.zip ."
参考:
# 4. 网络
# 4.1. 连接/断开 网络
netsh wlan show profiles :
# 显示无线网连接过的 WiFi
netsh wlan show profiles
# 接口 wlan0 上的配置文件:
# 组策略配置文件(只读)
# ---------------------------------
# <无>
# 用户配置文件
# -------------
# 所有用户配置文件 : JJCCB-neibu
# 所有用户配置文件 : JJCCB-WIFI
netsh wlan connect name=xxxxx :
# 连接指定的 WIFI
netsh wlan connect name=JJCCB-neibu
netsh wlan disconnect :
# 断开连接
netsh wlan disconnect
其它:
Netsh WLAN delete profile name="Profile_Name"
Netsh WLAN set profileparameter name="Profile_Name" connectionmode=manual
Netsh WLAN set profileparameter name=" Profile_Name" connectionmode=auto
列出配置文件:netsh wlan show profile
导出配置文件:netsh wlan export profile key=clear
删除配置文件:netsh wlan delete profile name=""
添加配置文件:netsh wlan add profile filename=""
连接指定热点:netsh wlan connect name="wifi name"
列出无线接口:netsh wlan show interface
开启无线接口:netsh interface set interface "Interface Name" enabled
# 4.2. 启用/禁用 网卡
重命名:
所有控制面板项\网络连接 (搜索“网络连接”)
在图标上单击右键,重命名
- WLAN -> wlan0
- 以太网 -> eth0
启用/禁用:
netsh interface set interface eth0 enabled
netsh interface set interface wlan0 disabled
# 4.3. 获取mac地址
C:\Users\wuqinfei>ipconfig/all
无线局域网适配器 wlan0:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : MediaTek Wi-Fi 6 MT7921 Wireless LAN Card
物理地址. . . . . . . . . . . . . : CC-6B-1E-8C-D9-DB
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::12a9:4001:ea1e:b0e1%10(首选)
IPv4 地址 . . . . . . . . . . . . : 172.241.11.215(首选)
子网掩码 . . . . . . . . . . . . : 255.255.254.0
获得租约的时间 . . . . . . . . . : 2023年9月11日 14:01:47
租约过期的时间 . . . . . . . . . : 2023年9月11日 18:31:50
默认网关. . . . . . . . . . . . . : 172.241.11.254
DHCP 服务器 . . . . . . . . . . . : 172.241.11.254
DHCPv6 IAID . . . . . . . . . . . : 114060062
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-28-8E-A4-E9-90-2E-16-7E-83-3A
DNS 服务器 . . . . . . . . . . . : 202.103.24.68
202.103.44.150
TCPIP 上的 NetBIOS . . . . . . . : 已启用
# 4.4. 查看端口占用的进程
示例:
# 查看占用 8088 端口的进程
netstat -ano | findstr 8088
# TCP 0.0.0.0:8088 0.0.0.0:0 LISTENING 7476
# 终止 7476 进程
taskkill /F /PID 7476
参考:
# 4.5. 杀死侦听端口的进程
@echo off
for /F "tokens=5" %%a in ('netstat -ano ^| findstr "8080" ^| findstr "LISTENING"') do set "PID=%%a"
if "%PID%"=="" (
echo "not found port 8080 process。"
) else (
echo "found port 8080 process,PID 为:" %PID%
taskkill /F /PID %PID%
)
# 4.6. 下载文件
# 可能触发安全软件拦截。
certutil -urlcache -split -f http://120.27.131.214:51238/jar/labwind-admin.jar D:\test\labwind-admin.jar
# PowerShell
Invoke-WebRequest -Uri "http://120.27.131.214:51238/jar/labwind-admin.jar" -OutFile "D:\test\labwind-admin.jar"
# 4.7. 参考
# 5. 服务
# 5.1. 启动/停止 服务
# 启动
net start 服务名称
# 停止
net stop 服务名称
# 5.2. 安装服务
sc create 服务名称 binPath=路径\可执行文件.exe
# 5.3. 删除服务
sc delete 服务名称
# 5.4. 查看服务状态
sc query 服务名称
# 5.5. 设置服务的启动类型(自动、手动、禁用)
# 自动启动
sc config 服务名称 start= auto
# 手动启动
sc config 服务名称 start= demand
# 禁用服务
sc config 服务名称 start= disabled
# 6. 程序
# 6.1. 注释
说明:
- 使用
@rem关键字 - 使用
::符号
示例:
@rem 这是一段注释
:: 这也是一段注释
# 6.2. 变量
说明:
- 使用
set临时环境变量,cmd.exe 内有效
示例:
# 设置 环境变量
set project_path=D:\project\test
# 查看
set project_path
# 引用
echo %project_path%
# 删除
set project_path=
参考:
# 6.3. if 语句
语法:
# 如果 上一个命令 返回的错误码 大于 <number> 则 ... 否则 ...
if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]
# If command extensions are enabled, use the following syntax:
if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]
示例:
echo 1
if ERRORLEVEL 0 echo 执行成功了!
# 大小写敏感
if A == a (echo 相等) else echo 不相等
# 忽略大小写
if /i A == a (echo 相等) else echo 不相等
# <compareop>
# EQU - 等于
# NEQ - 不等于
# LSS - 小于
# LEQ - 小于或等于
# GTR - 大于
# GEQ - 大于或等于
if 4 GTR 1 (echo 大于) else echo 不大于
参考:
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/if
# 6.4. for
示例: (更新 3 个仓库)
set workspace1=D:\dev\labwind
set rep1=%workspace1%\labwind
set rep2=%workspace1%\labwind-admin-ui
set rep3=%workspace1%\labwind-client-ui
for %%i in (%rep1% %rep2% %rep3%) do (
git --git-dir=%%i\.git pull
)
pause
# 6.5. 格式化日期
echo %date%
# 2021/08/29 周日
echo %date:~0,4%%date:~5,2%%date:~8,2%
# 20210829
echo %date:~0,4%-%date:~5,2%-%date:~8,2%
# 2021-08-29
echo %date:~0,4%/%date:~5,2%/%date:~8,2%
# 2021/08/29
echo %date:~0,4%年%date:~5,2%月%date:~8,2%日
# 2021年08月29日
参考:
# 7. 其他
# 7.1. 执行多条命令
| 命令 | 作用 | 举例 |
|---|---|---|
& | 无条件执行 & 后的命令 | cmd1 & cmd2 即 cmd1、cmd2都会执行 |
&& | 成功后执行 | cmd1 && cmd2 即若 cmd1 执行成功则执行 cmd2 |
|| | 失败后执行 | cmd1 || cmd2 即若 cmd1 执行失败则执行 cmd2 |
# 7.2. start
说明:
- Starts a separate Command Prompt window to run a specified program or command.
- 启动单独的命令提示符窗口以运行指定的程序或命令。
示例:
# 打开网址:
start http://localhost:4000/index.html#/zh-CN
参考:
# 7.3. 更换编码
# 换成utf-8代码页
chcp 65001
# 换成默认的gbk
chcp 936
# 美国英语
chcp 437
# 指定 jar 包编码
java -Dfile.encoding=utf-8 -jar xxx.jar
# 7.4. shutdown
说明:
- 关闭或重启电脑
示例:
# 1小时(3600秒)后关闭电脑
shutdown /s /t 3600
参考:
# 7.5. timeout - 延迟执行
# 延迟 1 秒,相当于睡眠 1 秒
timeout /t 1
# 8. 参考
上一篇: 下一篇:
本章目录