zoukankan      html  css  js  c++  java
  • 使用bat脚本部署hexo到coding和github

    因项目的不同适当的改造吧,本文以hexo为例。

    拉取coding.net的代码和github的代码到本地

    1. 确保代码能够正常的运行,commit,push
    2. 在项目的目录外新建一个push.bat文件

    快速预览

    如何一步到位提交到仓库

    脚本中的变量说明

    • artsPath 新增文章的目录
    • codingPath coding的目录
    • githubPath github的目录

    复制文章然后自动执行命令进行部署

    修改脚本中对应的路径后执行push

    xcopy F:CodingReposymhexoarts F:CodingReposymhexoyimocodingsource\_posts /Y
    cd F:CodingReposymhexoyimocoding
    call git pull
    call hexo clean
    call hexo d -g
    call git add *
    call git commit -m AddArticle
    call git push
    

    优化v1-加入变量并读取第一个参数为注释

    查阅了果然cmd是有变量的,所以提前了路径到变量中,注释也可以传入了
    使用push 修改文章,提交之后注释为update_修改文章,可省略参数

    set artsPath=F:CodingReposymhexoarts
    set codingPath=F:CodingReposymhexoyimocoding
    set githubPath=F:CodingReposymhexoyimogit.github.io
    
    xcopy %artsPath% %codingPath%source\_posts /Y
    cd /d %codingPath%
    call git pull
    call hexo clean
    call hexo d -g
    call git add *
    call git commit -m update_%1
    call git push
    

    优化v2-多个仓库的部署

    复制粘贴是最简单的了,but~ 我感觉还能再优化下
    定义变量,然后保存到字符串str中,通过赋值str后调整到for取下一个值实现一个路径的先入先出的T_T【笑哭】可以算作循环数组的方法了

    
    @echo off
    set artsPath=F:CodingReposymhexoarts
    REM coding的目录
    set codingPath=F:CodingReposymhexoyimocoding
    REM github的目录
    set githubPath=F:CodingReposymhexoyimogit.github.io
    REM 默认注释add_article,第一个参数为注释
    set notes=%1 
    if "%1"=="" set notes=add_article
    REM 拼接coding和github的目录地址,路径中不能含有空格
    set str="%codingPath% %githubPath%"
    
    :STR_START
    for /f "tokens=1,*" %%a in (%str%) do (
        REM 复制文章到此仓库
        xcopy %artsPath% %%asource\_posts /Y
        REM 重定向到此仓库
        cd /d %%a
        REM 更新推送等操作
        call git pull
        call hexo clean
        call hexo d -g
        call git add *
        call git commit -m %notes%
        call git push
        REM 重新将新字符串赋值个str,并重新开时循环新的字符串
        set str="%%b"
        goto STR_START
    )
    
    

    过去过不去的都会过去

    不愿干重复的事情~
    就是如此的懒~
    能一个脚本干完所有事简直完美~
    不知道有没有比这种方法更好的实现

  • 相关阅读:
    Jedis测试redis
    jedis池的作用
    错误
    Ceph剖析:数据分布之CRUSH算法与一致性Hash
    drools规则引擎初探
    Techniques for HA IT Management
    django_simple_captcha使用笔记
    微服务架构的理论基础
    分布式系统服务的稳定性
    四层、七层负载均衡的区别
  • 原文地址:https://www.cnblogs.com/morang/p/cmd-batch-pull-git.html
Copyright © 2011-2022 走看看