脚本代码

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
@echo off
chcp 65001 >nul
REM 自动发布Hexo博客脚本(可在任意位置运行)

REM 设置你的博客根目录路径
set BLOG_ROOT=D:\blog\hexo-blog

echo ========================================
echo 开始自动发布Hexo博客
echo ========================================

REM 检查博客目录是否存在
if not exist "%BLOG_ROOT%" (
echo 错误: 博客目录 %BLOG_ROOT% 不存在
pause
exit /b 1
)

REM 切换到博客目录
cd /d "%BLOG_ROOT%"

REM 检查是否为Hexo博客目录
if not exist "_config.yml" (
echo 错误: %BLOG_ROOT% 不是Hexo博客目录(缺少 _config.yml 文件)
pause
exit /b 1
)

if not exist "source" (
echo 错误: %BLOG_ROOT% 不是Hexo博客目录(缺少 source 目录)
pause
exit /b 1
)

echo 当前工作目录: %cd%
echo 正在执行 hexo clean...
call hexo clean
if %errorlevel% neq 0 (
echo 错误: hexo clean 执行失败,请检查错误信息
pause
exit /b %errorlevel%
)

echo.
echo 正在执行 hexo generate...
call hexo generate
if %errorlevel% neq 0 (
echo 错误: hexo generate 执行失败,请检查错误信息
pause
exit /b %errorlevel%
)

:menu
echo.
echo 请选择接下来的操作:
echo 1. 启动本地服务器 (hexo server)
echo 2. 部署到远程 (hexo deploy)
echo 3. 访问网站 (blog.just-ok.xyz)
echo 4. 退出
echo.

set /p choice=请输入选项 (1/2/3/4):

if "%choice%"=="1" (
echo.
echo 正在启动本地服务器...

REM 在后台启动hexo server并在浏览器中打开
start "Hexo Server" cmd /c "hexo server"

REM 等待服务器启动后打开浏览器
timeout /t 3 /nobreak >nul
start "" "http://localhost:4000"

echo 服务器已在后台运行,浏览器已打开
echo 要停止服务器,请关闭新打开的命令行窗口

REM 在server执行后再次显示菜单
goto menu
) else if "%choice%"=="2" (
echo.
echo 正在部署到远程服务器...
call hexo deploy
if %errorlevel% neq 0 (
echo 错误: hexo deploy 部署失败,请检查错误信息
pause
exit /b %errorlevel%
)
echo.
echo 博客已成功部署!

REM 部署完成后返回菜单
goto menu
) else if "%choice%"=="4" (
echo 已取消操作,退出脚本
exit /b 0
) else if "%choice%"=="3" (
echo.
echo 正在打开博客网站...
start "" "https://blog.just-ok.xyz"
echo 浏览器已打开

REM 在访问网站后返回菜单
goto menu
)else (
echo 无效选项,请重新选择
goto menu
)

echo.
echo 脚本执行完成
pause

脚本使用说明

  1. 创建一个名为start.bat的文件,并在代码编辑器中将源代码复制进去
  2. 修改Blog_Root变量的值为博客的根目录路径
    1
    2
    REM 设置你的博客根目录路径
    set BLOG_ROOT=D:\blog\hexo-blog
  3. 修改网站地址为自己的网站链接
    1
    2
    3
    4
    5
    6
    else if "%choice%"=="3" (
    echo.
    echo 正在打开博客网站...
    start "" "https://blog.just-ok.xyz"
    echo 浏览器已打开
    )
  4. 使用时双击即可运行脚本,自动完成博客的启动和部署。

扩展说明

  1. 在菜单中选择执行hexo server命令后,会自动启动hexo server并打开浏览器,并等待服务器启动后访问localhost:4000(如未设置默认浏览器则会弹出选择默认浏览器的对话框)。
  2. 如果使用hexo-douban插件,则需在hexo clean命令后加入这段代码执行hexo douban命令,将douban数据写入数据库。
    1
    2
    3
    4
    5
    6
    7
    8
    echo.
    echo 正在执行 hexo douban...
    call hexo douban
    if %errorlevel% neq 0 (
    echo 错误: hexo douban 执行失败,请检查错误信息
    pause
    exit /b %errorlevel%
    )