[代码小方法] 随时备份代码为压缩包, 批处理命令一键备份

本文介绍了如何利用Windows的批处理命令和WinRAR软件,一键将代码文件夹打包成压缩包,实现自动备份。通过创建批处理文件,并结合时间戳,可以方便地在每次运行时生成带有日期时间的唯一文件名,提高代码备份的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

常见的版本控制大家一定都用过, 如git、svn等. 但如果我们只想把现有的代码打一份压缩包到本地呢?

适用于

把现有的代码打一份压缩包到本地

所需工具

  • 操作系统: Windows
  • WinRAR软件 官网

正文

  1. 安装WinRAR, 获得Rar.exe的绝对路径C:\Program Files\WinRAR\Rar.exe
    在这里插入图片描述

  2. 找到需打包的文件或文件夹(code1、code2), 命令行进入目录

    // 命令提示符切换路径命令
    cd /d 绝对路径
    

    切换目录

  3. 这时我们输入(rar.exe的绝对路径+各种命令+目标压缩包名+n个要压缩的文件或文件夹)

    "C:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 mycode.zip code1 code2.java
    

    点击回车, 会发现当前目录下, mycode.zip被创建.
    在这里插入图片描述

  4. 将命令保存为批处理文件, 方便运行.
    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相对路径: 用..表示上一级目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值