# 常用的bat命令
# Windows命令兼容性说明
本文档中的bat命令主要针对Windows系统设计,不同Windows版本的兼容性如下:
# 完全兼容的Windows版本
- Windows 10/11: 所有命令均完全支持
- Windows Server 2016/2019/2022: 所有命令均完全支持
- Windows 8/8.1: 绝大多数命令支持,部分新功能可能不可用
- Windows 7: 大部分命令支持,部分高级功能可能受限
# 需要注意的命令
- PowerShell相关命令: Windows 7及更早版本需要单独安装PowerShell
- SSH命令: Windows 10 1809及以后版本内置,早期版本需要单独安装OpenSSH
- WinRM命令: Windows 7及以后版本支持,但需要手动配置
- 部分高级网络命令: 较旧的Windows版本可能不支持所有参数
# 权限要求
- 基本命令: 普通用户权限即可执行
- 系统管理命令: 需要管理员权限(如shutdown、chkdsk等)
- 网络相关命令: 某些网络配置需要管理员权限
- 远程连接命令: 需要相应的网络和系统权限
# 使用建议
- 在使用命令前,建议先在测试环境中验证
- 对于需要管理员权限的命令,请右键"以管理员身份运行"
- 在较旧的Windows系统上使用时,请检查命令的可用性
- 某些命令可能需要先启用相关Windows功能(如Telnet客户端)
# 如何创建bat文件
# 方法一:使用记事本创建
- 打开记事本(Notepad)
- 输入所需的bat命令
- 点击"文件" → "另存为"
- 在"保存类型"中选择"所有文件"
- 在文件名中输入以
.bat结尾的文件名(如myscript.bat) - 选择保存位置,点击"保存"
# 方法二:使用文本编辑器创建
- 打开任何文本编辑器(如VS Code、Sublime Text等)
- 输入bat命令
- 保存文件时,将文件扩展名设置为
.bat
# 方法三:直接在文件夹中创建
- 打开要创建bat文件的文件夹
- 右键点击空白处 → "新建" → "文本文档"
- 将新建的文本文档重命名为以
.bat结尾的文件名 - 确认更改文件扩展名
- 右键点击新建的bat文件 → "编辑"
- 在打开的记事本中输入命令并保存
# bat文件基本语法
- 每行一个命令
- 使用
@echo off关闭命令回显 - 使用
echo显示文本信息 - 使用
pause暂停执行,等待用户按键 - 使用
rem或::添加注释
# 简单示例
@echo off
echo 这是一个简单的bat脚本示例
echo 当前时间是:%date% %time%
pause
1
2
3
4
2
3
4
# 运行bat文件
- 双击bat文件直接运行
- 右键点击bat文件 → "以管理员身份运行"(需要管理员权限的命令)
- 在命令提示符中输入bat文件路径运行
# 系统管理
# 重启资源管理器
taskkill /f /im explorer.exe
start explorer.exe
1
2
2
参数解析:
taskkill: 结束进程命令/f: 强制终止进程/im: 指定进程映像名称
start: 启动程序命令
使用场景: 当桌面图标消失、任务栏无响应或资源管理器出现异常时,可以使用此命令重启资源管理器,通常能解决大部分界面显示问题。
# 关闭计算机
shutdown /s /t 0
1
参数解析:
/s: 关闭计算机/t 0: 设置关机倒计时为0秒(立即执行)
其他常用参数:
/f: 强制关闭正在运行的应用程序而不警告/c "注释": 关机前的注释(最多512个字符)
使用场景:
- 系统维护完成后需要关机
- 远程管理时需要关闭远程计算机
- 自动化脚本中的关机操作
# 重启计算机
shutdown /r /t 0
1
参数解析:
/r: 重启计算机/t 0: 设置重启倒计时为0秒(立即执行)
使用场景:
- 安装系统更新后需要重启
- 系统出现异常需要重启恢复
- 远程管理时需要重启远程计算机
# 注销当前用户
shutdown /l
1
参数解析:
/l: 注销当前用户
使用场景:
- 需要切换用户账户
- 用户配置文件出现问题需要重新加载
- 公共计算机上用户使用完毕后注销
# 锁定计算机
rundll32.exe user32.dll,LockWorkStation
1
参数解析:
rundll32.exe: 运行DLL中的导出函数user32.dll: Windows用户界面API库LockWorkStation: 锁定工作站的函数
使用场景:
- 暂时离开电脑时保护隐私和数据安全
- 企业环境中强制员工离开时锁定计算机
- 自动化安全策略的一部分
# 查看系统信息
systeminfo
1
参数解析:
- 无需参数,直接执行即可显示完整系统信息
可选参数:
/fo table: 以表格格式显示/fo list: 以列表格式显示/fo csv: 以CSV格式显示> 文件名.txt: 将输出重定向到文件
使用场景:
- 系统故障排查时查看硬件和软件配置
- 获取系统详细信息用于技术支持
- 审计和记录系统配置
# 查看IP配置
ipconfig
1
参数解析:
- 无参数时显示基本IP配置信息
常用参数:
/all: 显示详细配置信息(包括MAC地址、DNS服务器等)/release: 释放指定适配器的IP地址/renew: 重新获取指定适配器的IP地址/flushdns: 清除DNS解析缓存
使用场景:
- 网络连接故障排查
- 查看计算机IP地址和网关信息
- 网络配置验证
# 刷新DNS缓存
ipconfig /flushdns
1
参数解析:
/flushdns: 清除并重置DNS解析器缓存
使用场景:
- 网站无法访问但网络连接正常
- DNS服务器更改后需要更新本地缓存
- 解决DNS解析相关的问题
# ping测试网络连接
ping www.baidu.com
1
参数解析:
ping: 网络诊断工具,测试与目标主机的连接
常用参数:
-t: 持续ping直到手动停止(Ctrl+C)-n 数量: 指定发送的回显请求数量-l 大小: 指定发送的缓冲区大小-w 超时: 指定等待每个回复的超时时间(毫秒)
使用场景:
- 测试网络连通性
- 测量网络延迟
- 诊断网络故障
- 验证DNS解析是否正常
# 文件和文件夹操作
# 创建文件夹
mkdir 新文件夹名
1
参数解析:
mkdir(或md): 创建目录命令
使用场景:
- 组织文件时创建新的分类文件夹
- 安装软件前创建必要的目录结构
- 批量处理文件时创建目标文件夹
# 删除文件夹
rmdir 文件夹名
1
参数解析:
rmdir(或rd): 删除目录命令
常用参数:
/s: 删除目录树(即目录及其所有子目录和文件)/q: 安静模式,删除目录树时不要求确认
使用场景:
- 清理不再需要的文件夹
- 卸载软件后删除残留目录
- 定期清理临时文件夹
# 复制文件
copy 源文件 目标文件
1
参数解析:
copy: 复制一个或多个文件
常用参数:
/y: 禁止提示确认要覆盖现有目标文件/-y: 提示确认要覆盖现有目标文件/v: 验证新文件写入是否正确
使用场景:
- 备份重要文件
- 在不同位置创建文件副本
- 分发文件给多个用户
# 复制文件夹及其内容
xcopy 源文件夹 目标文件夹 /e /i
1
参数解析:
xcopy: 高级文件复制命令
常用参数:
/e: 复制目录和子目录,包括空的/i: 如果目标不存在且复制多个文件,则假定目标必须是目录/h: 复制隐藏文件和系统文件/k: 复制属性,正常的xcopy会重置只读属性/y: 禁止提示确认要覆盖现有目标文件
使用场景:
- 完整备份文件夹结构
- 迁移用户数据到新位置
- 部署应用程序文件
# 删除文件
del 文件名
1
参数解析:
del(或erase): 删除一个或多个文件
常用参数:
/p: 删除每个文件之前提示确认/f: 强制删除只读文件/s: 从当前目录及所有子目录删除指定文件/q: 安静模式,删除全局通配符时不要求确认
使用场景:
- 清理临时文件
- 删除过期的备份文件
- 清理下载文件夹
# 进程管理
# 查看运行中的进程
tasklist
1
参数解析:
tasklist: 显示当前运行在本地或远程计算机上的进程
常用参数:
/m 模块名: 列出加载指定DLL模块的所有进程/svc: 显示每个进程中的服务/v: 显示详细任务信息/fo table: 以表格格式显示(默认)/fo csv: 以CSV格式显示
使用场景:
- 查看系统资源占用情况
- 识别可疑或恶意进程
- 监控特定应用程序是否在运行
# 结束指定进程
taskkill /f /im 进程名.exe
1
参数解析:
taskkill: 结束一个或多个任务或进程/f: 强制终止进程/im: 指定要终止的进程的映像名称
其他常用参数:
/pid 进程ID: 指定要终止的进程的PID/t: 终止指定的进程和由它启动的子进程/fi 筛选器: 指定筛选器条件
使用场景:
- 结束无响应的应用程序
- 终止恶意软件进程
- 释放被占用的系统资源
# 环境变量
# 查看所有环境变量
set
1
参数解析:
set: 显示、设置或删除环境变量
使用场景:
- 查看当前系统环境配置
- 故障排查时检查路径设置
- 了解系统配置信息
# 设置临时环境变量
set 变量名=变量值
1
参数解析:
变量名: 要设置的环境变量名称变量值: 要赋给变量的值
使用场景:
- 临时修改程序运行环境
- 批处理脚本中传递参数
- 测试不同环境配置
# 磁盘管理
# 查看磁盘使用情况
wmic logicaldisk get size,freespace,caption
1
参数解析:
wmic: Windows管理接口命令行logicaldisk: 查询逻辑磁盘信息get: 获取指定属性size: 磁盘总大小freespace: 可用空间caption: 磁盘盘符
使用场景:
- 监控磁盘空间使用情况
- 规划磁盘空间分配
- 磁盘空间不足预警
# 磁盘检查
chkdsk C: /f
1
参数解析:
chkdsk: 检查磁盘并显示状态报告C:: 要检查的驱动器/f: 修复磁盘上的错误
其他常用参数:
/r: 查找坏扇区并恢复可读取的信息/v: 在FAT/FAT32上显示磁盘上每个文件的完整路径和名称/x: 如果需要,强制卷先卸除
使用场景:
- 系统出现文件损坏错误
- 磁盘性能下降时检查
- 定期维护磁盘健康状态
# 网络管理
# 查看网络连接
netstat -an
1
参数解析:
netstat: 显示网络连接、路由表和网络接口统计信息-a: 显示所有连接和监听端口-n: 以数字形式显示地址和端口号
其他常用参数:
-o: 显示每个连接的进程ID-b: 显示创建每个连接或监听端口的可执行程序-r: 显示路由表
使用场景:
- 检查是否有异常网络连接
- 查看哪些端口正在监听
- 网络故障诊断
# 映射网络驱动器
net use Z: \\服务器名\共享文件夹
1
参数解析:
net use: 连接或断开计算机与共享资源的连接Z:: 要映射的本地驱动器盘符\\服务器名\共享文件夹: 网络共享路径
常用参数:
/user:用户名: 指定连接时使用的用户名/persistent:yes: 使连接在重启后仍然保持/delete: 删除指定的网络连接
使用场景:
- 访问网络共享资源
- 企业环境中映射共享文件夹
- 备份数据到网络位置
# 远程桌面连接
mstsc /v:远程服务器IP或主机名
1
参数解析:
mstsc: 远程桌面连接程序/v:服务器地址: 指定要连接的远程计算机
常用参数:
/f: 全屏模式启动/admin: 连接到管理会话/multimon: 使用多个显示器/w:宽度/h:高度: 指定远程桌面窗口大小/public: 在公共模式下运行
使用场景:
- 远程管理服务器
- 技术支持远程协助
- 家庭办公连接公司电脑
# 使用凭据连接远程服务器
cmdkey /generic:TERMSRV/远程服务器IP /user:用户名 /pass:密码
mstsc /v:远程服务器IP
1
2
2
参数解析:
cmdkey: 创建、显示和删除保存的用户名和密码/generic:TERMSRV/服务器IP: 为远程桌面连接创建凭据/user:用户名: 指定用户名/pass:密码: 指定密码
使用场景:
- 自动化远程桌面连接
- 批量管理多台服务器
- 脚本化远程维护任务
# SSH连接远程服务器
ssh 用户名@远程服务器IP
1
参数解析:
ssh: 安全外壳协议客户端用户名@服务器IP: 指定登录用户和服务器地址
常用参数:
-p 端口: 指定连接端口(默认22)-i 密钥文件: 指定私钥文件进行身份验证-L 本地端口:目标主机:目标端口: 本地端口转发-R 远程端口:目标主机:目标端口: 远程端口转发
使用场景:
- 安全连接Linux服务器
- 端口转发访问内网服务
- 通过跳板机连接内网服务器
# Telnet连接远程服务器
telnet 远程服务器IP 端口号
1
参数解析:
telnet: 终端仿真程序远程服务器IP: 目标服务器地址端口号: 目标服务端口(可选,默认23)
使用场景:
- 测试端口连通性
- 连接支持Telnet的设备
- 网络设备配置(如交换机、路由器)
# FTP连接远程服务器
ftp 远程服务器IP
1
参数解析:
ftp: 文件传输协议客户端远程服务器IP: FTP服务器地址
常用FTP命令:
open 服务器IP: 连接到FTP服务器user 用户名: 输入用户名pass 密码: 输入密码ls: 列出远程目录内容get 文件名: 下载文件put 文件名: 上传文件bye: 退出FTP
使用场景:
- 上传网站文件到服务器
- 从服务器下载日志文件
- 批量文件传输任务
# PowerShell远程连接
powershell -Command "Enter-PSSession -ComputerName 远程服务器IP -Credential 用户名"
1
参数解析:
powershell: PowerShell命令行-Command: 执行指定的PowerShell命令Enter-PSSession: 进入远程PowerShell会话-ComputerName: 指定远程计算机-Credential: 指定凭据
使用场景:
- 远程执行PowerShell脚本
- 管理Windows服务器
- 批量服务器配置管理
# WinRM远程连接
winrs -r:远程服务器IP -u:用户名 -p:密码 命令
1
参数解析:
winrs: Windows远程Shell命令-r:远程服务器IP: 指定远程计算机-u:用户名: 指定用户名-p:密码: 指定密码命令: 要在远程计算机上执行的命令
使用场景:
- 远程执行单个命令
- 批量服务器管理
- 自动化远程任务执行
# 远程服务器管理
# 批量连接远程服务器脚本示例
@echo off
setlocal enabledelayedexpansion
echo 远程服务器连接脚本
echo ====================
:: 服务器列表
set servers[0]=192.168.1.100
set servers[1]=192.168.1.101
set servers[2]=192.168.1.102
:: 用户名和密码
set username=admin
set password=yourpassword
:: 循环连接每个服务器
for /l %%i in (0,1,2) do (
echo 正在连接服务器: !servers[%%i]!
winrs -r:!servers[%%i]! -u:!username! -p:!password! "systeminfo | findstr /B /C:\"OS Name\" /C:\"System Type\""
echo.
)
pause
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
参数解析:
setlocal enabledelayedexpansion: 启用延迟变量扩展set servers[0]=...: 定义服务器数组for /l %%i in (0,1,2): 循环遍历服务器列表winrs: 远程执行命令systeminfo | findstr: 获取系统信息并过滤
使用场景:
- 批量检查多台服务器状态
- 统一管理服务器集群
- 自动化运维任务
# 远程文件传输脚本
@echo off
setlocal
echo 远程文件传输脚本
echo =================
set server=192.168.1.100
set username=admin
set password=yourpassword
set localFile=C:\data\report.txt
set remoteFolder=\\%server%\shared\reports
:: 创建凭据
cmdkey /add:%server% /user:%username% /pass:%password%
:: 复制文件到远程服务器
copy "%localFile%" "%remoteFolder%"
if %errorlevel% equ 0 (
echo 文件传输成功
) else (
echo 文件传输失败
)
:: 删除凭据
cmdkey /delete:%server%
pause
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
参数解析:
cmdkey /add: 添加凭据cmdkey /delete: 删除凭据copy: 复制文件%errorlevel%: 检查上一条命令的执行结果
使用场景:
- 自动化备份文件到远程服务器
- 批量分发文件到多台计算机
- 定期同步数据
# 实用脚本示例
# 批量重命名文件
@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.jpg) do (
ren "%%f" "图片!count!.jpg"
set /a count+=1
)
1
2
3
4
5
6
7
2
3
4
5
6
7
参数解析:
@echo off: 关闭命令回显setlocal enabledelayedexpansion: 启用延迟变量扩展set count=1: 初始化计数器for %%f in (*.jpg): 遍历所有jpg文件ren "%%f" "图片!count!.jpg": 重命名文件set /a count+=1: 计数器递增
使用场景:
- 整理照片文件
- 批量重命名下载的文件
- 标准化文件命名格式
# 清理系统临时文件
@echo off
del /q /f /s %temp%\*
del /q /f /s C:\Windows\Temp\*
echo 临时文件清理完成
pause
1
2
3
4
5
2
3
4
5
参数解析:
del /q /f /s: 安静模式强制删除所有子目录中的文件%temp%: 系统临时文件夹环境变量echo: 显示消息pause: 暂停执行,等待用户按键
使用场景:
- 释放磁盘空间
- 提高系统性能
- 定期系统维护
# 自动设置IP地址
@echo off
netsh interface ip set address "本地连接" static 192.168.1.100 255.255.255.0 192.168.1.1
netsh interface ip set dns "本地连接" static 8.8.8.8
echo IP地址设置完成
1
2
3
4
2
3
4
参数解析:
netsh: 网络外壳命令interface ip set address: 设置IP地址"本地连接": 网络连接名称static: 静态IP地址192.168.1.100: IP地址255.255.255.0: 子网掩码192.168.1.1: 默认网关8.8.8.8: DNS服务器
使用场景:
- 快速切换网络环境
- 服务器网络配置
- 网络故障恢复
# 自动获取IP地址
@echo off
netsh interface ip set address "本地连接" dhcp
netsh interface ip set dns "本地连接" dhcp
echo IP地址设置为自动获取
1
2
3
4
2
3
4
参数解析:
dhcp: 动态主机配置协议(自动获取IP)
使用场景:
- 从静态IP切换回动态IP
- 在不同网络环境间切换
- 网络故障排查时重置网络配置