使用 CMD 批处理快速打包 Typecho 主题

使用 CMD 批处理快速打包 Typecho 主题

2023年12月30日 作者头像 作者头像 泽泽社长 编辑

评论

1 Count

作为 Typecho 主题开发者,每次打包发布主题都是一个很烦的事情,之前我一直是手动打包,然后删除不必要的文件,接着改名,今天打包上传服务器让我厌倦了这个动作,仅此写了一个批处理来打包主题。

批处理简直是我写过最恶心的东西啊!!!

代码

把下面的代码保存为pack.cmd,放到主题目录下,双击即可打包主题到主题的pack目录下,需要安装 Winrar,注意修改Winrar路径

@echo off
for /F "tokens=3" %%i in ('type index.php ^| findstr @version') do (SET VERSION=%%i)
for /F "tokens=3" %%i in ('type index.php ^| findstr @package') do (SET THEME=%%i)
if not exist pack (mkdir pack)
SET ARCHIVEPATH=.\pack\%THEME%.%VERSION%.zip
if exist %ARCHIVEPATH% (del /s /f /q %ARCHIVEPATH%)
C:\Progra~1\WinRAR\WinRar.exe a -afzip -r -x*\node_modules -x*\node_modules\* -x*\.idea -x\*.json -x*\webpack.config.js -x*\assets\src\* -x*\assets\src\  -x*\pack.cmd -x*\pack\* -x*\pack %ARCHIVEPATH% ..\%THEME%

代码说明

type 相当于shell里的cat
findstr 相当于grep
SET a=b 变量复制
for /F "tokens=3" 相当于awk '{print $3}'
if not exist用于判断文件或者目录是否存在

WinRar.exe 参数说明

a是压缩文件的意思
-x路径是排除文件
-afzip是压缩成zip格式

20220105更新

如果想文件名带上日期

SET ARCHIVEPATH=.\pack\%THEME%.%VERSION%.%date:~0,4%%date:~5,2%%date:~8,2%.zip"

文章来自

https://xiamp.net/archives/fast-packaging-typecho-topics-with-cmd-batch.html