日常记录

Sourcetree + git 导出选中文件sh脚本

后端 admin 4年前 (2021-12-04) 1713次浏览 0个评论

新建文件export.sh,复制内容,修改导出文件夹为你的保存路径

#!/bin/bash
DATE=`date +%m%d`
INIT_PATH=${1%/}
FILE_PATH=${2%/}
#自定义保存的位置
BASE_PATH="导出保存文件夹/$DATE"
SAVE_PATH=""
function checksavepath() {
    #序号,保证每次都是新创建的“日期-[index]”的文件夹
    index=1
    path=${BASE_PATH}"-"$index
    while [ -d $path ]
    do
        let "index+=1"
        path=${BASE_PATH}"-"$index
    done
    SAVE_PATH=$path
#   echo "save path: ${SAVE_PATH}"
    mkdir -p ${SAVE_PATH}
#    touch $SAVE_PATH".log"
}
function getfilefromdir(){
    for file in ` ls $1`
    do
        if [ -d $1"/"$file ]
        then
            #echo ${SAVE_PATH}"/"$file
            mkdir ${SAVE_PATH}"/"$file
            getfilefromdir $1"/"$file ${SAVE_PATH}"/"$file
        else
            local path="$1"
            local name=$file
            if [ ! -f $SAVE_PATH"/"$name ]
            then
                #确认目录存在,路径不存在则创建
                parent=$(dirname $name)
                #应该补全的文件夹路径
                dirs="${parent#${INIT_PATH}}"
                dirs="${dirs:${#FILE_PATH}}"
                #文件名
                filename="${var##*/}";
                #补全文件夹
                mkdir -p $2$dirs
                #输出语句
                echo "cp ${path} to $2${dirs}/${filename}"
                #复制文件
                cp ${path} "$2${dirs}/${filename}"
            else
                echo "${path} file already exists"
            #echo "${path}" >> $SAVE_PATH".log" 2>&1
            fi
        fi
    done
}
checksavepath
#遍历所有参数
for arg in $*
do
#判断并排除为项目路径的参数
if [ $arg != $FILE_PATH ]
then
    #复制文件
    getfilefromdir ${FILE_PATH}"/"$arg $SAVE_PATH
fi
done

新建文件export.bat,加入以下内容,修改D:\Program Files\Git\bin\sh.exe你的git安装目录 /bin/sh.exe;修改D:\phpstudy_pro\export.sh为上一步 export.sh 路径

@echo off
"D:\Program Files\Git\bin\sh.exe" D:\phpstudy_pro\export.sh %USERPROFILE%\Desktop %*

sourcetree 工具>选项>自定义操作 按如下配置

喜欢 (3)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址