使用Windows脚本快速创建文章

使用Windows脚本快速创建文章

前言

Hexo 每次新建文章都需要打开终端-切换目录-创建文章-打开笔记软件-打开新创建的文章。这一套流程不免步骤繁琐,因此尝试使用脚本简化流程。

代码

新建一个 .bat 文件,写入下面的代码:

 1@echo off
 2:input
 3set /p title="请输入文章标题: "
 4echo.%title%|findstr /r /c:"[&^<>|]" >nul && (
 5    echo 标题不能包含以下特殊字符: ^&^<^>^|^
 6    goto input
 7)
 8cd /D D:\GitHub\hexo-blog
 9start /wait cmd /c hexo new post "%title%"
10set post_path="D:\GitHub\hexo-blog\source\_posts\%title%.md"
11start "" "D:\Program\Typora\Typora.exe" %post_path%

将代码中的站点根目录和 Typora 的程序路径改为自己的路径。

文件另存为 ANSI 编码,否则会乱码。

排坑

过程中发现文章可以正常创建,但是并不能正常使用程序打开,排查下来发现执行完创建 post 命令后终端会直接关闭,因此代码中 start /wait cmd /c hexo new post "%title%" 命令会在新的命令提示符窗口中执行 hexo new post 命令,并且原来的批处理脚本会等待 hexo new post 命令执行完成后再继续执行。

另外,这里使用的是 Typora 打开文件,如果你的编辑器是 Obsidian,可以参考另一篇文章,可以更加方便的创建、发布文章。

Hugo 版

补充一个 Hugo 版本的脚本:

 1@echo off
 2setlocal enabledelayedexpansion
 3
 4REM 设置命令提示符的编码格式为 UTF-8
 5chcp 65001 >nul
 6
 7REM 设置 Hugo 目录
 8set hugo_dir=D:\Github\hugo-blog-fixit
 9
10REM 提示用户输入文章标题
11set /p _post_title=请输入文章标题: 
12
13REM 获取当前日期并格式化为 YYYY-MM-DD
14for /f "tokens=2 delims==" %%a in ('wmic os get localdatetime /value') do set datetime=%%a
15set year=%datetime:~0,4%
16set month=%datetime:~4,2%
17set day=%datetime:~6,2%
18set date=%year%-%month%-%day%
19
20REM 生成文件名
21set filename=%hugo_dir%\content\posts\%date%-%_post_title%.md
22
23REM 使用 Hugo 命令创建文件
24cd /d %hugo_dir%
25hugo new posts/%date%-%_post_title%.md
26
27REM 使用默认的 Markdown 编辑器打开文件
28start "" "%filename%"
29
30endlocal
Note

脚本中创建文件名称格式为:2001-01-01-标题.md 如果不需要相关时间戳可以删除相关部分代码。

使用Windows脚本快速创建文章

https://blog.grew.cc/posts/bat-creat-post/

作者

Tom

创建时间

2024-04-23

最后更新时间

2024-04-23

许可协议

CC BY 4.0