引言 {#引言}
这篇文章是主角是使用bat脚本来维护和管理博客,在那之前我们先了解一下bat批处理脚本的一些命令。
关于 bat 批处理常用命令 {#关于-bat-批处理常用命令}
bat是Windows平台下的一种脚本语言,类似于Linux平台下是shell。下面只是举几个简单的例子,更多关于bat脚本的语法可以查看这里。
| 语法 | 解释 | |---------------------------|--------------------------------------------------------------------------| | echo | 表示打印该命令后的字符,如echo hello执行后会打印"hello" | | echo off | 表示在此语句后所有运行的命令都不显示命令本身 ,但本身会显示 | | @ | 与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行) | | @echo off | 组合上两个语法,表示不显示后续执行命令及当前命令 | | dir c:. >a.txt | 将c盘文件列表写入a.txt | | call | 用于调用另一个批处理命令或文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令) | | call c:\ucdos\ucdos.bat | 调用ucdos.bat脚本 | | pause | 暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续 | | rem | 用于注释,也可以用 ::代替 | | start | 调起另外一个窗口执行当前行命令 | | | |
实战脚本 {#实战脚本}
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| @echo off cls set blogname="" :列表选择 @echo off set Author=作者:竹山一叶 @title Hexo博客工具-%Author% @PROMPT @color b cls echo. echo. echo. echo 1 初始化博客 echo 2 启动博客预览 echo 3 生成博客页面 echo 4 发布部署博客 echo 5 生成和发布博客 echo 6 新增文章 echo 7 新增页面 echo ------------------------------------------------------------------------- echo 直接回车=刷新 输入Q回车=退出 @set option="" @set /p option= if /I "%option%"=="1" goto init if /I "%option%"=="2" goto server if /I "%option%"=="3" goto generate if /I "%option%"=="4" goto deploy if /I "%option%"=="5" goto generatedeploy if /I "%option%"=="6" goto newpost if /I "%option%"=="7" goto newpage if /I "%option%"=="q" (exit) goto 列表选择 :init cls echo ----------------------------初始化博客---------------------------->nul @set /p blogname=请输入博客目录的名称: if exist %blogname% goto blogexist echo 开始初始化博客「%blogname%」 call hexo init %blogname% echo 初始化博客「%blogname%」已完成 call cd %blogname% echo 开始初始化博客「%blogname%」环境 call npm install :blogexist echo 指定博客「%blogname%」目录已经存在 echo. echo 初始化博客环境「%blogname%」已完成 echo. echo 初始化博客已经完成,按下任意键后进入功能选择列表 pause goto 列表选择 :server @echo off cls echo ----------------------------启动博客预览---------------------------->nul if "" == %blogname% ( set /p blogname=请输入博客目录的名称: ) cd %blogname% start hexo server echo. @cd %~dp0 echo 按下任意键后进入功能选择列表 pause goto 列表选择 :generate @echo off cls echo ----------------------------生成博客页面---------------------------->nul if "" == %blogname% ( set /p blogname=请输入博客目录的名称: ) cd %blogname% call hexo generate echo. @cd %~dp0 echo 按下任意键后进入功能选择列表 pause goto 列表选择 :deploy @echo off cls echo ----------------------------发布部署博客---------------------------->nul if "" == %blogname% ( set /p blogname=请输入博客目录的名称: ) cd %blogname% call hexo deploy echo. @cd %~dp0 echo 按下任意键后进入功能选择列表 pause goto 列表选择 :generatedeploy @echo off cls echo ----------------------------生成和发布博客---------------------------->nul if "" == %blogname% ( set /p blogname=请输入博客目录的名称: ) cd %blogname% call hexo clean call hexo generate call hexo deploy echo. @cd %~dp0 echo 按下任意键后进入功能选择列表 pause goto 列表选择 :newpost @echo off cls echo ----------------------------新增文章---------------------------->nul if "" == %blogname% ( set /p blogname=请输入博客目录的名称: ) cd %blogname% set /p postname=请输入文章的目录和文件名称: set /p titlename=请输入文章的标题: call hexo new -p %postname% "%titlename%" echo. @cd %~dp0 echo 按下任意键后进入功能选择列表 pause goto 列表选择 :newpage @echo off cls echo ----------------------------新增页面---------------------------->nul if "" == %blogname% ( set /p blogname=请输入博客目录的名称: ) cd %blogname% set /p pagename=请输入页面的目录和文件名称: set /p titlename=请输入页面的标题: call hexo new page --path %pagename% "%titlename%" echo. @cd %~dp0 echo 按下任意键后进入功能选择列表 pause goto 列表选择
|