使用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
如果不需要相关时间戳可以删除相关部分代码。