前言
常见的版本控制大家一定都用过, 如git、svn等. 但如果我们只想把现有的代码打一份压缩包到本地呢?
适用于
把现有的代码打一份压缩包到本地
所需工具
- 操作系统: Windows
- WinRAR软件 官网
正文
-
安装WinRAR, 获得Rar.exe的绝对路径
C:\Program Files\WinRAR\Rar.exe
-
找到需打包的文件或文件夹(code1、code2), 命令行进入目录
// 命令提示符切换路径命令 cd /d 绝对路径
-
这时我们输入(rar.exe的绝对路径+各种命令+目标压缩包名+n个要压缩的文件或文件夹)
"C:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 mycode.zip code1 code2.java
点击回车, 会发现当前目录下,
mycode.zip
被创建.
-
将命令保存为批处理文件, 方便运行.
4.1 打开记事本(任何文本编辑器), 将刚才的命令输入并保存为.bat
文件
笔者将其保存在了代码文件同级目录中
双击它, 就会很轻松的完成备份.注意: 这里可能会出现:
错误: 已锁定的压缩文件 程序终止
这应是因为同名文件所导致的 , 只要变更已备份的文件名就可以再次保存了
以上, 就实现了我们的"命令行备份代码"的需求啦!
进阶
还是不够方便! 我希望它能在我保存的时候自动加上当前日期时间!
1. 文件名自动添加日期时间
So easy! 如果你对命令行时间表示
有些许了解, 相信你可以自己完成啦.
// 命令行各个时间
年 %date:~0,4%
月 %date:~5,2%
日 %date:~8,2%
时 %time:~0,2%
分 %time:~3,2%
秒 %time:~6,2%
1.1 打印看看
比如我们想要的时间格式为
2019-01-01 10;10;10
(因Windows的文件名不可带有:
, 所以只能用;
代替. 很蛋疼)
那么, 时间应表示为%date:~0,4%-%date:~5,2%-%date:~8,2%" "%time:~0,2%;%time:~3,2%;%time:~6,2%
echo %date:~0,4%-%date:~5,2%-%date:~8,2%" "%time:~0,2%;%time:~3,2%;%time:~6,2%
// 结果应为: 2019-07-09" "10;01;55
到此, 你应该知道怎么办了吧?
1.2 修改批处理文件
将之前的命令修改为
"C:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 %date:~0,4%-%date:~5,2%-%date:~8,2%" "%time:~0,2%;%time:~3,2%;%time:~6,2%.zip code1 code2.java
再次运行批处理文件, 发现
文件名按照当前时间自动保存, 大功告成!
其他
- rar.exe全部用法
用法: rar <command> -<switch 1> -<switch N> <archive> <files...> <@listfiles...> <path_to_extract\> <Commands> a 添加文件到压缩文档 c 添加添加压缩文档注释 ch 更改压缩文档参数 cw 写入压缩文档注释到文件 d 从压缩文档删除文件 e 提取文件不带压缩路径 f 刷新压缩文档中的文件 i[par]=<str> 在压缩文档里查找字符串 k 锁定压缩文档 l[t[a],b] 列出压缩文档内容 [technical[all], bare] m[f] 移动到压缩文档 [仅文件] p 打印文件到 stdout r 修复压缩文档 rc 重新构建丢失的卷 rn 重命名归档的文件 rr[N] 添加数据恢复记录 rv[N] 创建恢复卷 s[name|-] 转换压缩文档到或从 SFX t 测试压缩文档的文件 u 更新压缩文档中的文件 v[t[a],b] 详细列出压缩文档的内容 [technical[all],bare] x 解压文件带完整路径 <Switches> - 停止参数扫描 @[+] 禁用 [enable] 文件列表 ac 压缩或解压后清除压缩文档属性 ad 扩展压缩文档名称到目标路径 ag[format] 使用当前日期生成压缩文档名称 ai 忽略文件属性 ao 添加文件带有压缩文档属性集 ap<path> 设置压缩文档内部的路径 as 同步压缩文档内容 c- 禁用内容显示 cfg- 禁用读取配置 cl 转换名称为小写 cu 转换名称为大写 df 压缩后删除文件 dh 打开共享的文件 dr 删除文件到回收站 ds 为固实压缩禁用名称排序 dw 压缩后删除文件 e[+]<attr> 设置文件排除和包含属性 ed 不要添加空目录 en 不要放置 'end of archive' 块 ep 从名称里排除路径 ep1 从名称里排除根目录 ep2 扩展路径为完整路径 ep3 扩展路径为完整路径包括驱动器盘符 f 刷新文件 hp[password] 加密文件数据及文件头 ht[b|c] 设置哈希类型 [BLAKE2,CRC32] 用于文件校验和 id[c,d,p,q] 禁用消息 ieml[addr] 通过电邮发送压缩文档 ierr 发送所有压缩文档到 stderr ilog[name] 记录错误日志到文件 inul 禁用所有消息 ioff[n] 完成一个操作后关闭电脑 isnd[-] 控制通知声音 iver 仅显示版本号 k 锁定压缩文档 kb 保留损坏的已解压文件 log[f][=name] 将名称写入日志文件 m<0..5> 设置压缩等级 (0-store...3-default...5-maximal) ma[4|5] 指定压缩格式的版本 mc<par> 设置高级压缩参数 md<n>[k,m,g] 词典大小单位为 KB, MB 或 GB ms[ext;ext] 指定要存储的文件类型 mt<threads> 设置线程数 n<file> 额外管理器包含文件 n@ 从 stdin 读取额外的过滤器掩码 n@<list> 从列表文件读取额外的过滤器掩码 o[+|-] 设置覆盖模式 oc 设置 NTFS 压缩属性 oh 保存硬链接为链接而不是文件 oi[0-4][:min] 将相同的文件保存为参考 ol[a] 将符号链接处理为链接 [absolute paths] oni 允许潜在的不兼容名称 or 自动重命名文件 os 保存 NTFS 流 ow 保存或恢复文件拥有者和组 p[password] 设置密码 p- 不要查询密码 qo[-|+] 添加快速打开信息 [none|force] r 递归子目录 r- 禁用递归 r0 递归子目录仅用于通配符名称 ri<P>[:<S>] 设置优先级 (0-默认,1-最小.15-最大) 和休眠时间单位为 ms rr[N] 添加数据恢复记录 rv[N] 创建恢复卷 s[<N>,v[-],e] 创建固实压缩文档 s- 禁用固实压缩文档 sc<chr>[obj] 指定字符集 sfx[name] 创建 SFX 压缩文档 si[name] 从标准输入读取数据 (stdin) sl<size> 处理小于指定大小的文件 sm<size> 处理大于指定大小的文件 t 压缩后测试 ta[mcao]<d> 处理那些在日期 <d> YYYYMMDDHHMMSS 之后修改过的文件 tb[mcao]<d> 处理那些在日期 <d> YYYYMMDDHHMMSS 之前修改过的文件 tk 保留原来的压缩时间 tl 设置压缩时间为最近的文件 tn[mcao]<t> 处理那些时间比 <t> 更新的文件 to[mcao]<t> 处理那些时间比 <t> 更老的文件 ts[m,c,a] 保存或恢复文件时间(修改日期,创建日期,访问日期) u 更新文件 v<size>[k,b] 创建卷大小为=<size>*1000 [*1024, *1] vd 创建卷之前删除磁盘内容 ver[n] 文件版本控制 vn 使用旧式的卷命名规则 vp 每个卷之前暂停 w<path> 指定工作目录 x<file> 排除特定文件 x@ 读取文件名以便从 stdin 排除 x@<list> 排除在特定列表文件里列出的文件 y 对所有问题回答是 z[file] 从文件读取压缩文档注释
- cmd相对路径: 用
..
表示上一级目录