作为 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"
精选留言