一键备份脚本
分享一下自己写的脚本,因为每天学习需要做笔记,我的笔记每天都会备份,所以每天都需要重复的操作,将新的笔记copy到本地仓库目录把旧的笔记覆盖掉,再执行git命令Push到我的仓库,我觉得太繁琐了。
一键Push的脚本我之前写了,但是还是得手动copy去覆盖笔记,还是麻烦,然后写一个一键copy到本地仓库目录,之后再调用我写的一键Push的脚本就完全释放双手啦
上代码
拷贝到指定目录,并且执行指定脚本(一键Push脚本)
@echo off
chcp 65001
MODE con COLS=70 LINES=20
title 小张专属、一键备份
color 0d
echo.
echo 正在获取所有笔记中...
:: flag是需要备份的文件存在的目录 %cd%是当前目录
set "flag=%cd%"
echo.
echo 正在获取目标目录...
:: OutPath是备份文件的目标目录
set "OutPath=%cd%\码云备份\data\学习资料"
:: *.md是我要备份的资料,如果你的文件固定可以写死,格式不一样要更改
echo.
echo 正在copy中,请稍等...
copy %flag%\*.md %OutPath%\
echo.
if %errorlevel% == 0 (
echo 拷贝成功
) else (
echo 拷贝失败,找BUG吧
)
echo.
echo 正在试图执行Push推送中...
echo.
if %errorlevel% == 0 (
echo 正在Push中...请喝杯卡布奇诺稍等片刻
) else (
echo Push执行失败,找BUG吧
)
::这里的PushBat要写你要执行一键Push脚本的地址
set "PushBat=%cd%\码云备份\data\一键push脚本.bat"
::执行一键Push脚本
call %PushBat%
echo.
if %errorlevel% == 0 (
echo Push成功
) else (
echo Push执行失败今晚加班
)
pause
一键Push脚本
@echo off
chcp 65001
:: 拼接提交备注
set dateTime=%Date:~3,4%%Date:~8,2%%Date:~11,2%%Time:~0,2%%Time:~3,2%
echo.
:: 打开Git命令行,并执行对应的git命令
start D:\Study\tool\git\Git\git-bash.exe -c "cd C://Users//zs171//Desktop//码云备份//data && git add ./* && git commit -m "%dateTime%" && git push";bash
pause
在拼接提交备注时有一个Bug问题:%Time:~0,2%(获取当前时间的钟头)
比如现在是早上7点,结果就是“ 7”,7的前面有一个空字符,这个会导致拼接提交备注时只会拼接到当前日期(20230625),所以当你在当天十点前提交第一次会成功,第二次就会Push失败,原因是你远程仓库里面已经存在这个提交备注,需要手动提交
解决办法就是在拼接时候把时间删除,只拼接到日期,在后面拼接随机数,具体范围看你提交频率,我都是晚上备份所以我就没有搞