德州市文章资讯

Windows系统管理bat批处理脚本的示例代码

2026-04-05 07:34:01 浏览次数:0
详细信息

Windows 批处理脚本示例集

以下是一些实用的Windows系统管理批处理脚本示例:

1. 系统信息收集脚本

@echo off
chcp 65001 >nul
title 系统信息收集工具
color 0A

echo ========================================
echo      Windows 系统信息报告
echo ========================================
echo 生成时间: %date% %time%
echo.

echo === 系统信息 ===
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" /C:"系统类型" /C:"物理内存总量"
echo.

echo === 磁盘信息 ===
wmic logicaldisk get caption,freespace,size,volumename
echo.

echo === 网络信息 ===
ipconfig | findstr IPv4
echo.

echo === 用户信息 ===
whoami
echo.

echo === 运行的服务 ===
sc query | findstr "SERVICE_NAME"
echo.

echo === 进程列表(前10个)===
tasklist | more +7 | head -10
echo.

echo 信息收集完成!
pause

2. 自动化备份脚本

@echo off
setlocal enabledelayedexpansion

chcp 65001 >nul
title 文件备份工具
color 0E

:: 配置变量
set BACKUP_SOURCE=C:\重要文档
set BACKUP_DEST=D:\备份\文档备份
set BACKUP_NAME=文档备份_%date:~0,4%%date:~5,2%%date:~8,2%
set LOG_FILE=%BACKUP_DEST%\备份日志.txt

echo 开始备份操作...
echo 备份时间: %date% %time% >> "%LOG_FILE%"
echo.

:: 检查目标目录是否存在
if not exist "%BACKUP_DEST%" (
    echo 创建备份目录: %BACKUP_DEST%
    mkdir "%BACKUP_DEST%"
)

:: 执行备份
echo 正在备份 %BACKUP_SOURCE% 到 %BACKUP_DEST%\%BACKUP_NAME%...
xcopy "%BACKUP_SOURCE%" "%BACKUP_DEST%\%BACKUP_NAME%" /E /H /C /I /Y /Q

if %errorlevel% equ 0 (
    echo 备份成功完成!
    echo 状态: 成功 - %BACKUP_NAME% >> "%LOG_FILE%"
) else (
    echo 备份过程中出现错误!
    echo 状态: 失败 - 错误代码: %errorlevel% >> "%LOG_FILE%"
)

:: 清理旧备份(保留最近7天)
echo.
echo 清理旧备份文件...
forfiles /p "%BACKUP_DEST%" /m * /d -7 /c "cmd /c if @isdir==TRUE echo 保留: @file"

echo.
echo 备份操作完成!
echo 日志文件: %LOG_FILE%
pause

3. 系统维护脚本

@echo off
chcp 65001 >nul
title 系统维护工具
color 0B

echo ========================================
echo       Windows 系统维护工具
echo ========================================
echo.

:menu
cls
echo 请选择要执行的操作:
echo ========================
echo 1. 清理临时文件
echo 2. 清理预读文件
echo 3. 清理系统日志
echo 4. 磁盘检查
echo 5. 执行所有维护
echo 6. 退出
echo ========================
set /p choice="请输入选择 (1-6): "

if "%choice%"=="1" goto cleanup_temp
if "%choice%"=="2" goto cleanup_prefetch
if "%choice%"=="3" goto cleanup_logs
if "%choice%"=="4" goto disk_check
if "%choice%"=="5" goto all_maintenance
if "%choice%"=="6" exit /b

echo 无效选择,请重新输入
timeout /t 2 >nul
goto menu

:cleanup_temp
echo 清理临时文件...
del /f /s /q %temp%\*.*
del /f /s /q C:\Windows\Temp\*.*
echo 临时文件清理完成!
pause
goto menu

:cleanup_prefetch
echo 清理预读文件...
del /f /s /q C:\Windows\Prefetch\*.*
echo 预读文件清理完成!
pause
goto menu

:cleanup_logs
echo 清理系统日志...
del /f /s /q C:\Windows\Logs\*.*
echo 系统日志清理完成!
pause
goto menu

:disk_check
echo 执行磁盘检查...
chkdsk C: /f
echo 磁盘检查计划已设置!
pause
goto menu

:all_maintenance
echo 执行所有系统维护操作...
call :cleanup_temp
call :cleanup_prefetch
call :cleanup_logs
call :disk_check
echo 所有维护操作完成!
pause
goto menu

4. 网络诊断脚本

@echo off
chcp 65001 >nul
title 网络诊断工具
color 0D

set LOG_FILE=%USERPROFILE%\Desktop\网络诊断_%date:~0,4%%date:~5,2%%date:~8,2%.txt

echo 开始网络诊断...
echo 网络诊断报告 > "%LOG_FILE%"
echo 时间: %date% %time% >> "%LOG_FILE%"
echo ======================================== >> "%LOG_FILE%"
echo.

echo 1. 检查网络适配器...
echo. >> "%LOG_FILE%"
echo [网络适配器信息] >> "%LOG_FILE%"
ipconfig /all >> "%LOG_FILE%"
echo.

echo 2. 测试本地连接...
echo. >> "%LOG_FILE%"
echo [本地连接测试] >> "%LOG_FILE%"
ping 127.0.0.1 -n 4 >> "%LOG_FILE%"
echo.

echo 3. 测试网关连接...
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "默认网关"') do (
    set GATEWAY=%%i
    set GATEWAY=!GATEWAY:~1!
    echo 测试网关: !GATEWAY!
    echo. >> "%LOG_FILE%"
    echo [网关测试 !GATEWAY!] >> "%LOG_FILE%"
    ping !GATEWAY! -n 4 >> "%LOG_FILE%"
)
echo.

echo 4. 测试DNS解析...
echo. >> "%LOG_FILE%"
echo [DNS测试] >> "%LOG_FILE%"
nslookup www.microsoft.com >> "%LOG_FILE%"
echo.

echo 5. 测试外部连接...
echo. >> "%LOG_FILE%"
echo [外部连接测试] >> "%LOG_FILE%"
ping 8.8.8.8 -n 4 >> "%LOG_FILE%"
echo.

echo 6. 显示路由表...
echo. >> "%LOG_FILE%"
echo [路由表] >> "%LOG_FILE%"
route print >> "%LOG_FILE%"
echo.

echo 网络诊断完成!
echo 报告已保存到: %LOG_FILE%
echo.
pause

5. 用户管理脚本

@echo off
chcp 65001 >nul
title 用户账户管理工具
color 0C

:: 需要管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 需要管理员权限运行此脚本!
    echo 请右键点击,选择"以管理员身份运行"
    pause
    exit /b
)

:menu
cls
echo ========================================
echo       用户账户管理工具
echo ========================================
echo.
echo 1. 列出所有用户账户
echo 2. 创建新用户账户
echo 3. 删除用户账户
echo 4. 重置用户密码
echo 5. 添加到管理员组
echo 6. 退出
echo ========================================
set /p choice="请选择操作 (1-6): "

if "%choice%"=="1" goto list_users
if "%choice%"=="2" goto create_user
if "%choice%"=="3" goto delete_user
if "%choice%"=="4" goto reset_password
if "%choice%"=="5" goto add_to_admin
if "%choice%"=="6" exit /b

echo 无效选择!
timeout /t 2 >nul
goto menu

:list_users
echo 系统用户列表:
echo ==============
net user
echo.
pause
goto menu

:create_user
set /p username="请输入用户名: "
set /p password="请输入密码: "
net user %username% %password% /add
if %errorlevel% equ 0 (
    echo 用户 %username% 创建成功!
) else (
    echo 创建用户失败!
)
pause
goto menu

:delete_user
set /p username="请输入要删除的用户名: "
net user %username% /delete
if %errorlevel% equ 0 (
    echo 用户 %username% 删除成功!
) else (
    echo 删除用户失败!
)
pause
goto menu

:reset_password
set /p username="请输入用户名: "
net user %username% *
echo 请为 %username% 输入新密码
pause
goto menu

:add_to_admin
set /p username="请输入用户名: "
net localgroup administrators %username% /add
if %errorlevel% equ 0 (
    echo 用户 %username% 已添加到管理员组!
) else (
    echo 操作失败!
)
pause
goto menu

6. 服务管理脚本

@echo off
chcp 65001 >nul
title 服务管理工具
color 0E

:menu
cls
echo ========================================
echo        Windows 服务管理工具
echo ========================================
echo.
echo 1. 查看所有服务状态
echo 2. 启动服务
echo 3. 停止服务
echo 4. 重启服务
echo 5. 设置服务启动类型
echo 6. 退出
echo ========================================
set /p choice="请选择操作 (1-6): "

if "%choice%"=="1" goto list_services
if "%choice%"=="2" goto start_service
if "%choice%"=="3" goto stop_service
if "%choice%"=="4" goto restart_service
if "%choice%"=="5" goto set_startup
if "%choice%"=="6" exit /b

echo 无效选择!
timeout /t 2 >nul
goto menu

:list_services
echo 服务列表:
echo ==========
sc query | findstr "SERVICE_NAME"
echo.
pause
goto menu

:start_service
set /p servicename="请输入服务名称: "
net start %servicename%
if %errorlevel% equ 0 (
    echo 服务 %servicename% 启动成功!
) else (
    echo 启动服务失败!
)
pause
goto menu

:stop_service
set /p servicename="请输入服务名称: "
net stop %servicename%
if %errorlevel% equ 0 (
    echo 服务 %servicename% 停止成功!
) else (
    echo 停止服务失败!
)
pause
goto menu

:restart_service
set /p servicename="请输入服务名称: "
echo 停止服务...
net stop %servicename%
timeout /t 3 >nul
echo 启动服务...
net start %servicename%
if %errorlevel% equ 0 (
    echo 服务 %servicename% 重启成功!
) else (
    echo 重启服务失败!
)
pause
goto menu

:set_startup
set /p servicename="请输入服务名称: "
echo 启动类型选项:
echo 1. 自动
echo 2. 手动
echo 3. 禁用
set /p startup="请选择启动类型 (1-3): "

if "%startup%"=="1" (
    sc config %servicename% start= auto
) else if "%startup%"=="2" (
    sc config %servicename% start= demand
) else if "%startup%"=="3" (
    sc config %servicename% start= disabled
) else (
    echo 无效选择!
    pause
    goto menu
)

if %errorlevel% equ 0 (
    echo 服务 %servicename% 启动类型设置成功!
) else (
    echo 设置失败!
)
pause
goto menu

使用说明:

将代码保存为 .bat 文件 右键选择"以管理员身份运行"(对于需要权限的操作) 根据菜单提示进行操作

注意事项:

这些脚本提供了Windows系统管理的基本功能,可以根据实际需求进行修改和扩展。

相关推荐