这段时间在搞hexo博客

因为要本地编写、测试、上传博客,每次都要打代码,我嫌麻烦打算写个bat脚本来一键完成。

Part.0 创建脚本(基础须知,可跳转到 ###Part.1)

先创建一个文本文档,将文件后缀名改为.bat,右键打开编辑。 @echo off@*是不显示当前行命令,echo off是不显示下述命令。 ::或REM 空格后加注释,注意换行***。 pause暂停,输入任意值继续。

setset 命令定义变量.eg:set var=value,这里 var 是变量名,value 是变量的值。 setlocal enabledelayedexpansion当变量的值在循环中可能会发生变化时,需要开启延迟变量扩展,用!var!的形式访问变量。 %访问变量的值需要用 % 括起来,eg:echo %var%会在命令提示符窗口输出变量 var 的值。

echo用于在命令提示符窗口输出文本信息。 mkdir用于创建目录。eg:mkdir new folder 会在当前目录下创建一个名为 new folder 的新文件夹。 cd切换目录。cd new folder会进入刚刚创建的 new folder 目录;cd..可以返回上一级目录。 dir列出目录中的文件和子目录。dir 命令会显示当前目录下的内容,dir /s可以递归列出当前目录及其所有子目录下的内容。 explorer可以打开路径(“文件路径”),直接后加/select,文件路径可选中文件

#### start命令 用法:start [“title”] [parameters] “program name” [command line parameters] 其中: “title”是可选的,是要启动的窗口的标题。 parameters也是可选的,指定窗口的大小、状态等。eg:/min表示以最小化窗口启动,/max表示以最大化窗口启动。 “program name”要启动的程序的名称或可执行文件的路径。如果路径包含空格,同样需要用双引号括起来。eg:start “C:\Program Files\Microsoft Office\Excel.exe”会启动 Excel 程序。(双引号不可省略) command - line parameters传递给程序的命令行参数。比如你有一个网址,想用edge打开 eg:start "Edge" "https://www.baidu.com"

剩下的可以问AI,

Part.1 写个博客

@hexo new "new"&&explorer.exe /select,C:\Users\Admin\Desktop\hexo\source\_posts\new.md 解释:先用hexo创建一个名为new的文件,在打开并选中该文件,不实现自动改名是因为我试了半天都实现不了,连键入F2都不行

Part.2 本地测试博客

hexo clean&&start "Edge" "http://localhost:4000"&&hexo s 解释:先清理缓存,用edge打开本地端口,再开启本地博客服务,因为代码是从前向后运行,所以顺序不可改,先运行hexo s会导致无法自动打开浏览器

Part.3 上传博客

hexo clean&&hexo generate&&hexo deploy&&pause 解释:pause的作用是在正常上传博客之后,留有一个任意键的窗口,从而知晓博客正常上传与否

保存为bat,你就获得的自动化脚本

另外,part·1中废稿粘在下面,希望有人可以解疑———为什么它无法正常运行

点击展开完整代码(batch)

```batch @echo off setlocal enabledelayedexpansion

echo 正在创建新的Hexo博客文章… call hexo new “new_blog”

if errorlevel 1 ( echo 错误: 创建博客文章失败 echo 请确保: echo 1. Hexo已正确安装 echo 2. 当前目录是Hexo博客根目录 pause exit /b 1 )

set “postPath=C:_posts" set”oldFileName=new_blog.md"

rem 检查文章目录是否存在 if not exist “!postPath!” ( echo 错误: 文章目录不存在: !postPath! echo 请检查路径是否正确 pause exit /b 1 )

echo. echo 请输入新的文件名(不含扩展名),直接回车将保持原文件名: set /p “newName=”

if “!newName!”=="" ( echo 保持原文件名: new_blog.md set “finalFileName=!oldFileName!” ) else ( echo 正在将文件重命名为: !newName!.md

rem 检查原文件是否存在
if not exist "!postPath!!oldFileName!" (
    echo 错误: 原文件 !postPath!!oldFileName! 不存在
    echo 请检查Hexo是否成功创建了文章
    pause
    exit /b 1
)

rem 执行重命名操作
ren "!postPath!!oldFileName!" "!newName!.md"

if errorlevel 1 (
    echo 错误: 重命名文件失败
    echo 可能的原因:
    echo 1. 新文件名包含非法字符
    echo 2. 已存在同名文件
    echo 3. 没有足够的权限
    pause
    exit /b 1
)

set "finalFileName=!newName!.md"

)

echo 博客文章创建完成: !finalFileName!

rem 打开文件 if exist “!postPath!!finalFileName!” ( echo 正在打开文件… start "" “!postPath!!finalFileName!” ) else ( echo 警告: 文件 !postPath!!finalFileName! 不存在,无法打开 )

echo. echo 按任意键退出… pause >nul