1.1 把A目录作为源目录,B目录是A目录的镜像
是用在项目里面A站点某目录作为源目录,B站点某目录作为镜像目录。
类似复制然后覆盖的意思,通过批处理文件来实现。
1.2 用法
打个比方,当前目录是 F:\MyProject\TestRoboCopy
目录内有两个文件,两个目录。
文件:镜像-入口.bat
内容:
call 镜像.bat > log_%date:0,4%%date:5,2%%date:8,2%_%time:0,2%%time:3,2%%time:6,2%.txt
文件:镜像.bat
内容:
robocopy sourcedir tagdir /mir
rem test_%date:10%%date:4,2%%date:7,2%-%time:0,2%%time:3,2%%time:6,2%.log 2>&1
rem %date%%time%
rem %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%
目录sourceDir 作为源目录
里面内容大概是这样的:
├─bin
│ HW.Common.dll
│
├─Controller
│ home.cs
│ 我是新文档.txt
│ 新建文本文档 (2).cs
│ 新建文本文档.txt
│
└─page
index.html
login.html
register.html
目录tagDir作为目标目录(镜像)
里面内容大概是这样的:
 ̄□ ̄||里面没有内容啦,执行批处理后里面就会有内容的。
直接打开cmd 执行文件 镜像-入口.bat即可。然后你会发现当前目录多了个日志文件,大概是这种格式 log_20230331_135246.txt,同时tagDir目录里面的镜像也生成成功了。类似下图这样
2 补充
2.1 打开cmd窗口,执行bat文件的方法有以下几种:
- 可以资源浏览器的地址栏输入cmd,
- 按住shift然后右击资源浏览器空白处然后在菜单中选择在此处打开命令窗口,
- win+R然后输入cmd然后输入这个文件的绝对路径执行即可
2.2 bat文件命令说明
文件:镜像-入口.bat
call 镜像.bat > log_%date:0,4%%date:5,2%%date:8,2%_%time:0,2%%time:3,2%%time:6,2%.txt
call命令:执行其他bat文件
%date:~5,2%:表示从date这个日期变量(属于字符串)截取字符串,从下标5开始,截取两个字符。使用变量需要用两个%包围起来,你可以执行命令echo %date% 他会打印当前系统时间。
rem命令:表示是注释的命令,表示注释当前行,其实注释的语法还可以是两个冒号":",但是呢还是推荐使用rem。
2.3 另外,我页面中展示文件夹里面所有文件的方法是:
cmd命令窗口中,定位到此目录,执行命令 tree /f她就会展示这个目录所有文件。
如果你执行tree /f >a.txt她就会在当前目录生成a.txt文件,同时文件里面会填充tree /f这个命令的输出结果。
3 用途
比如说目录自动备份(可以写一个程序每间隔几分钟执行一次bat文件,或者下班前自动备份一下)其实也可以使用window系统的任务计划程序,window中点击win键,输入任务两个字,打开任务计划程序,可以在里面设置任务计划。
robocopy命令其实不仅仅是镜像整个目录树,也可以选择性的拷贝,具体用法可以 执行命令 robocopy /? 查看