对于Windows系统,我们可以使用bat脚本来代替手工拷贝文件备份.主要使用的语句有:
1.xcopy 拷贝
2.md 创建
我的原始需求:按当前系统日期创建文件夹,并把指定要备份的目录拷贝到该文件夹下.
脚本代码:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic os get localdatetime /value') do (set ct=%%a)
set date=%ct:~0,8%
set h=%ct:~8,2%
set m=%ct:~10,2%
rem 从系统时间截取字符串生成目的文件夹
set path=E:/workspace/hjeas60/bak/%date%-%h%%m%
set srcSource=E:/workspace/hjeas60/src/*.*
set srcDist=%path%/src
rem 创建文件夹
md %srcDist%
echo xcopy "%srcSource%" "%srcDist%"
rem 从原路径拷贝到目的路径
xcopy "%srcSource%" "%srcDist%" /S /E /Y
rem 以下是另一目录的拷贝
set metaSource0=E:/workspace/hjeas60/deployed_metas/bim.permission
set metaSource1=E:/workspace/hjeas60/deployed_metas/com
set metaDist=%path%/deployed_metas/com
md %metaDist%
xcopy "%metaSource0%" "%metaDist%"
xcopy "%metaSource1%/*.*" "%metaDist%" /S /E /Y
echo 完成从%srcSource%复制至%srcDist%!
echo 完成从%metaSource%复制至%metaDist%!
pause
遇到的问题:开始时bat语法不了解,只能在网上找参考信息然后猜它的意思,偿试修改。后来发现最后一个错总是提示“xcopy 不是内部或外部命令,也不是可执行的程序”,后来在网上看到方法,把系统目录下/WINDOWS/system32/xcopy.exe copy到运行目录下(即是你当前编辑的bat目录下),就成功执行了,大功告成。
让计算机帮你去做那些机械式、烦锁、重复性的工作,是一件很爽的事情!因为它会做得比你手工快而不会漏东西,你可以从中解脱出来!