当前位置: 首页 > news >正文

项目实操:windows批处理拉取git库和处理目录、文件

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        这个脚本从多个git库拉取源码、切换分支并适当组织目录结构。包含了常用的bat命令。

        unix/linux程序员的几个注意点:

  • 目录分隔符是反斜杠,不是斜杠,错了就不行
  • 不区分大小写,文件名、目录名、命令参数都是如此
  • windows与unix/linux相同的命令名并不多

目录

设置参数

准备目录

拉取库并处理内容

函数git_clone

函数Fail

bat命令速查

set 设置变量

%变量% 引用变量

@echo off

%cd% 工作路径

rd 删除目录

ren 重命名目录或文件

md 创建目录

cd 切换目录

del 删除文件

xcopy 复制目录和文件

>和>> 输出转向(写文件)


设置参数

set username=abc
echo 账号:%username%

        这里设置了username,后面要用。bat的变量默认都是全局的,可以在后续的函数里面访问。

准备目录

rd /s /q bak
ren source bak
md source
if errorlevel 1 goto Fail 无法创建目标目录
cd source

        输出目录为source,备份目录为bak。首先删除bak,然后将source重命名为bak,再创建source。

        Fail是个函数,报错并结束。

拉取库并处理内容

call:git_clone git-1 release
call:git_clone git-2 release
call:git_clone git-3 dev
md dir-b
xcopy git-3\dir-a\* dir-b\ /e
rd /s /q git-3cd ..
echo 成功
pause
exit

        拉取了3个库,然后把第三个库的一部分内容复制到另外一个目录,最后删掉了第三个库。

        git_clone是个函数,具体操作在函数里。

函数git_clone

::克隆库 参数1:库名 参数2:分支名
:git_clone
git clone https://%username%@库位置/%1
cd %1
git checkout %2
if errorlevel 1 goto Fail %1
rd /s /q .git
del .gitignore
cd ..
goto:eof

        注意函数开始是“:git_clone”,结尾是“goto:eof”,相当于函数就是标号吧。

        “git clone”就是标准的git命令, 示例是https的格式。

        克隆之后进入库目录,切换分支,然后删掉了.git目录和.gitignore,只保留了纯代码。

        如果觉得克隆整个库浪费,可以只克隆最新代码,通过增加“--depth 1”参数即可,直接在克隆时限制分支用“-b %2”即可(不再需要“git chechout %2”)。

函数Fail

:Fail
echo 处理出错 %1
pause
exit
goto:eof

bat命令速查

set 设置变量

%变量% 引用变量

@echo off

        关闭命令回显

%cd% 工作路径

rd 删除目录

        /s 递归,否则只能删除空目录

        /q 无需确认

ren 重命名目录或文件

md 创建目录

cd 切换目录

del 删除文件

xcopy 复制目录和文件

        默认不复制目录,复制目录需要/e参数

>和>> 输出转向(写文件)

        通常后面跟一个文件名来实现写文件,>会先清空文件,>>追加


(这里是文档结束)

http://www.lryc.cn/news/532666.html

相关文章:

  • 前端开发知识梳理 - HTMLCSS
  • nginx中的proxy_set_header参数详解
  • MapReduce是什么?
  • Text2Sql:开启自然语言与数据库交互新时代(3030)
  • 《图解设计模式》笔记(五)一致性
  • 华为支付-免密支付接入免密代扣说明
  • React组件中的列表渲染与分隔符处理技巧
  • 【Pytorch和Keras】使用transformer库进行图像分类
  • 快速了解 c++ 异常处理 基础知识
  • deepseek API 调用-python
  • 玩转Gin框架:Golang使用Gin完成登录流程
  • Linux学习笔记16---高精度延时实验
  • vue2:如何动态控制el-form-item之间的行间距
  • deepseek从网络拓扑图生成说明文字实例
  • 两种文件类型(pdf/图片)打印A4半张纸方法
  • HTB:UnderPass[WriteUP]
  • 【deepseek实战】绿色好用,不断网
  • MySQL 进阶专题:索引(索引原理/操作/优缺点/B+树)
  • 用NeuralProphet预测股价:AI金融新利器(附源码)
  • 【Elasticsearch】parent aggregation
  • IDEA使用Auto-dev+DeepSeek 10分钟快速集成,让java开发起飞
  • ASP.NET Core中间件Markdown转换器
  • 使用page assist浏览器插件结合deepseek-r1 7b本地模型
  • 【华为OD-E卷 - 108 最大矩阵和 100分(python、java、c++、js、c)】
  • 【Reading Notes】Favorite Articles from 2025
  • 云计算行业分析
  • 【Linux系统】线程:线程的优点 / 缺点 / 超线程技术 / 异常 / 用途
  • 3.攻防世界 weak_auth
  • 代码随想录算法训练营| 二叉树总结
  • Python OCR工具pytesseract识别数字验证码