项目实操:windows批处理拉取git库和处理目录、文件
这个脚本从多个git库拉取源码、切换分支并适当组织目录结构。包含了常用的bat命令。
unix/linux程序员的几个注意点:
- 目录分隔符是反斜杠,不是斜杠,错了就不行
- 不区分大小写,文件名、目录名、命令参数都是如此
- windows与unix/linux相同的命令名并不多
目录
设置参数
准备目录
拉取库并处理内容
函数git_clone
函数Fail
bat命令速查
set 设置变量
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-3
cd ..
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,只保留了纯代码。
函数Fail
:Fail
echo 处理出错 %1
pause
exit
goto:eof
bat命令速查
set 设置变量
rd 删除目录
ren 重命名目录或文件
md 创建目录
cd 切换目录
del 删除文件
xcopy 复制目录和文件
默认不复制目录,复制目录需要/e参数