# 常用的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等)
  • 网络相关命令: 某些网络配置需要管理员权限
  • 远程连接命令: 需要相应的网络和系统权限

# 使用建议

  1. 在使用命令前,建议先在测试环境中验证
  2. 对于需要管理员权限的命令,请右键"以管理员身份运行"
  3. 在较旧的Windows系统上使用时,请检查命令的可用性
  4. 某些命令可能需要先启用相关Windows功能(如Telnet客户端)

# 如何创建bat文件

# 方法一:使用记事本创建

  1. 打开记事本(Notepad)
  2. 输入所需的bat命令
  3. 点击"文件" → "另存为"
  4. 在"保存类型"中选择"所有文件"
  5. 在文件名中输入以.bat结尾的文件名(如myscript.bat
  6. 选择保存位置,点击"保存"

# 方法二:使用文本编辑器创建

  1. 打开任何文本编辑器(如VS Code、Sublime Text等)
  2. 输入bat命令
  3. 保存文件时,将文件扩展名设置为.bat

# 方法三:直接在文件夹中创建

  1. 打开要创建bat文件的文件夹
  2. 右键点击空白处 → "新建" → "文本文档"
  3. 将新建的文本文档重命名为以.bat结尾的文件名
  4. 确认更改文件扩展名
  5. 右键点击新建的bat文件 → "编辑"
  6. 在打开的记事本中输入命令并保存

# bat文件基本语法

  • 每行一个命令
  • 使用@echo off关闭命令回显
  • 使用echo显示文本信息
  • 使用pause暂停执行,等待用户按键
  • 使用rem::添加注释

# 简单示例

@echo off
echo 这是一个简单的bat脚本示例
echo 当前时间是:%date% %time%
pause
1
2
3
4

# 运行bat文件

  • 双击bat文件直接运行
  • 右键点击bat文件 → "以管理员身份运行"(需要管理员权限的命令)
  • 在命令提示符中输入bat文件路径运行

# 系统管理

# 重启资源管理器

taskkill /f /im explorer.exe
start explorer.exe
1
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

参数解析:

  • 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

参数解析:

  • 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

参数解析:

  • 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

参数解析:

  • @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

参数解析:

  • 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

参数解析:

  • 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

参数解析:

  • dhcp: 动态主机配置协议(自动获取IP)

使用场景:

  • 从静态IP切换回动态IP
  • 在不同网络环境间切换
  • 网络故障排查时重置网络配置
最近更新: 12/17/2025, 12:02:54 PM