前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【bat】用脚本实现git-clone和文件解压

【bat】用脚本实现git-clone和文件解压

作者头像
DevFrank
发布2024-07-24 15:07:36
500
发布2024-07-24 15:07:36
举报
文章被收录于专栏:C++开发学习交流

今天有一个简单的需求,从git上clone下来程序包,然后有的文件还需要解压,在Windows下,想着用bat程序就可以解决,bat是适合解决一些程序的自动化处理的,类似于Linux中的shell脚本,在解决过程中遇到几个问题记录一下:

bat基本结构

首先,我这个bat自动化脚本不需要和用户交互,所以关闭回显:@echo off

rd是删除目录,del是删除文件,这里我要确认当前目录下这个文件夹不存在,存在的话就给他删掉,所以用rd /s /q D:\xxx

程序的最后,如果写的是exit的话执行完后会自动退出窗口,如果写的是pause,会等待你输入一个任意按键。

在这里插入图片描述
在这里插入图片描述

如:

代码语言:javascript
复制
::------------------------------
::注释
::------------------------------
@echo off
::echo success
::exit
pause
调用git实现clone

首先,需要安装好git软件。

在这里插入图片描述
在这里插入图片描述

然后,在bat程序里设置好环境变量,也就是说,要让命令行知道我可以去哪里调用git这个命令,找到git的安装目录,然后添加:set GIT_HOME=D:\Program Files\Git\bin

然后就使用git clone xxx这个命令了。

如:

代码语言:javascript
复制
set GIT_HOME=D:\Git\bin
cd /d C:\Users\dev\Desktop
git clone https://gitee.com/heyuchick/hello-world.git
调用Bandizip实现文件解压

如果有zip压缩文件,怎么用bat脚本自动解压呢。

首先还是要定义环境变量:set ZIP_HOME=C:\Program Files\Bandizip,让cmd能找到命令。

然后解压:Bandizip.exe x photo.zip

解压完之后,会保留解压完成的窗口,如果不关掉它后面的程序无法执行,刚开始我是用串行处理,发现不行,然后准备新开一个窗口,去关掉bandizip这个进程:

代码语言:javascript
复制
Bandizip.exe x 1.zip
taskkill /f /im Bandizip.exe

新开窗口也是串行处理,所以处理这种情况就需要进行并行处理,并行处理时,一般是先定义cmd需要执行哪些命令,然后start开启一个线程,算是多线程处理吧。

如:

代码语言:javascript
复制
set cmd1=Bandizip.exe x 1.zip C:\Users\dev\Desktop
set cmd2=taskkill /f /im Bandizip.exe
start %cmd1%
sleep 3
start %cmd2%

这样就基本实现了想要的功能,脚本如下:

代码语言:javascript
复制
@echo off

@echo off
set GIT_HOME=D:\Git\bin
set ZIP_HOME=C:\Program Files\Bandizip
rd /s /q C:\Users\dev\Desktop\hello

cd /d C:\Users\dev\Desktop
git clone https://gitee.com/jutopia/hello.git

set cmd1=Bandizip.exe x 1.zip 
set cmd2=taskkill /f /im Bandizip.exe
start %cmd1%
sleep 3
start %cmd2%

echo success
::exit
pause

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • bat基本结构
  • 调用git实现clone
  • 调用Bandizip实现文件解压
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档