恩施上往网

windows系统使用bat脚本批量启动程序过程

2026-04-11 18:15:02 浏览次数:3
详细信息

1. 基本启动方法

方法1:直接启动程序

@echo off
REM 启动多个程序
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe"
start "" "C:\Program Files\Notepad++\notepad++.exe"
start "" "C:\Windows\System32\notepad.exe"

方法2:启动程序并打开文件

@echo off
start "" "C:\Program Files\Microsoft Office\Office16\WINWORD.EXE" "D:\报告.docx"
start "" "C:\Program Files\Microsoft Office\Office16\EXCEL.EXE" "D:\数据.xlsx"

2. 带延迟的启动脚本

@echo off
echo 正在启动工作环境...
timeout /t 2 /nobreak >nul

start "" "C:\Program Files\Google\Chrome\Application\chrome.exe"
timeout /t 1 /nobreak >nul

start "" "C:\Windows\System32\notepad.exe" "D:\notes.txt"
timeout /t 1 /nobreak >nul

start "" "C:\Program Files\PuTTY\putty.exe"
echo 所有程序已启动完成!
pause

3. 使用循环批量启动

@echo off
setlocal enabledelayedexpansion

REM 定义要启动的程序列表
set programs[0]="C:\Program Files\Google\Chrome\Application\chrome.exe"
set programs[1]="C:\Windows\System32\calc.exe"
set programs[2]="C:\Windows\System32\notepad.exe"
set programs[3]="C:\Windows\System32\mspaint.exe"

REM 循环启动所有程序
for /L %%i in (0,1,3) do (
    echo 启动程序: !programs[%%i]!
    start "" !programs[%%i]!
    timeout /t 1 /nobreak >nul
)

echo 所有程序启动完成!
pause

4. 从配置文件读取启动列表

start_programs.bat:

@echo off
setlocal enabledelayedexpansion

echo 从配置文件读取启动列表...
if not exist "startlist.txt" (
    echo startlist.txt 文件不存在,正在创建示例...
    echo C:\Windows\System32\notepad.exe > startlist.txt
    echo C:\Windows\System32\calc.exe >> startlist.txt
    echo C:\Windows\System32\mspaint.exe >> startlist.txt
)

REM 读取文件中的每行并启动程序
for /f "tokens=*" %%a in (startlist.txt) do (
    if exist "%%a" (
        echo 启动: %%a
        start "" "%%a"
        timeout /t 2 /nobreak >nul
    ) else (
        echo 文件不存在: %%a
    )
)

echo 批量启动完成!
pause

startlist.txt 内容示例:

C:\Windows\System32\notepad.exe
C:\Windows\System32\calc.exe
C:\Program Files\Google\Chrome\Application\chrome.exe

5. 带错误处理的启动脚本

@echo off
setlocal enabledelayedexpansion

set SUCCESS_COUNT=0
set FAIL_COUNT=0

echo 批量启动程序 - 开始
echo ================================

REM 启动程序数组
set apps[1]=记事本||C:\Windows\System32\notepad.exe
set apps[2]=计算器||C:\Windows\System32\calc.exe
set apps[3]=画图||C:\Windows\System32\mspaint.exe
set apps[4]=Chrome||C:\Program Files\Google\Chrome\Application\chrome.exe

for /L %%i in (1,1,4) do (
    for /f "tokens=1,2 delims=||" %%a in ("!apps[%%i]!") do (
        set app_name=%%a
        set app_path=%%b
    )

    echo 正在启动: !app_name!

    if exist "!app_path!" (
        start "" "!app_path!"
        echo  ✓ !app_name! 启动成功
        set /a SUCCESS_COUNT+=1
    ) else (
        echo  ✗ !app_name! 启动失败 (文件不存在)
        set /a FAIL_COUNT+=1
    )

    timeout /t 1 /nobreak >nul
)

echo ================================
echo 启动完成!
echo 成功: %SUCCESS_COUNT% 个 | 失败: %FAIL_COUNT% 个
pause

6. 高级用法 - 按需启动不同程序组

@echo off
:menu
cls
echo ================================
echo       程序批量启动器
echo ================================
echo 1. 启动办公套件
echo 2. 启动开发环境
echo 3. 启动设计软件
echo 4. 自定义启动
echo 5. 退出
echo ================================
set /p choice="请选择 (1-5): "

if "%choice%"=="1" goto office
if "%choice%"=="2" goto development
if "%choice%"=="3" goto design
if "%choice%"=="4" goto custom
if "%choice%"=="5" exit

goto menu

:office
echo 启动办公套件...
start "" "C:\Program Files\Microsoft Office\Office16\WINWORD.EXE"
start "" "C:\Program Files\Microsoft Office\Office16\EXCEL.EXE"
start "" "C:\Program Files\Microsoft Office\Office16\OUTLOOK.EXE"
goto end

:development
echo 启动开发环境...
start "" "C:\Program Files\Microsoft VS Code\Code.exe"
start "" "C:\Program Files\Git\git-bash.exe"
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe"
goto end

:design
echo 启动设计软件...
start "" "C:\Program Files\Adobe\Photoshop\photoshop.exe"
start "" "C:\Program Files\Adobe\Illustrator\Illustrator.exe"
goto end

:custom
echo 请输入要启动的程序路径(每行一个,输入空行结束):
echo 示例:C:\Windows\System32\notepad.exe
echo.
set custom_count=0
:input_loop
set /p app_path="程序路径: "
if "%app_path%"=="" goto custom_start
set app[%custom_count%]=%app_path%
set /a custom_count+=1
goto input_loop

:custom_start
for /L %%i in (0,1,%custom_count%) do (
    if defined app[%%i] (
        echo 启动: !app[%%i]!
        start "" "!app[%%i]!"
        timeout /t 1 /nobreak >nul
    )
)

:end
echo.
echo 启动完成!
pause
goto menu

使用技巧和注意事项:

路径包含空格:一定要用双引号包裹路径 start命令参数 延迟:使用timeout /t 秒数添加延迟,避免同时启动过多程序 管理员权限:某些程序需要管理员权限 日志记录:可以添加日志功能记录启动情况

保存和运行:

将代码保存为 .bat 文件(如 start_apps.bat) 双击运行 如需开机启动,可将bat文件放入启动文件夹(Win+R 输入 shell:startup

这些脚本可以根据实际需求进行修改和组合使用。

相关推荐