多次备份文件,VBScript和Shell

即备份文件到当天日期文件夹内,多次备份时便放入“160114_2”这样的文件夹内。


思路:

判断日期_i是否存在
不存在
建立日期_i这样的文件夹。
复制文件到此处
跳出循环

存在
回到循环,i=i+1,判断日期_i是否存在



VBScript:

Set fso=CreateObject("Scripting.FileSystemObject")
bakFolder = "C:\bak\"
bakFolder = bakFolder & todayDate
todayDate = Right(DatePart("yyyy",date), 2)&Right("0" & DatePart("m",date), 2)&Right("0"&DatePart("d", date),2)
if fso.folderExists(bakFolder) = false Then 
	fso.CreateFolder bakFolder
End if
bakFolder = bakFolder & "\" & todayDate
updateFolder = "C:\test"
MaxBakTime = 10
for i = 1 to MaxBakTime
	if fso.FolderExists(bakFolder & "_" & i) Then
		if i = MaxBakTime Then
			Msgbox "今日升级次数过多,备份文件夹值溢出。" & vbcrlf & vbcrlf & "请手动删除备份文件夹,或调整MaxBakTime值。"& vbcrlf & vbcrlf & "当前值:"& MaxBakTime, 0+64, "备份程序"
		End if
	else
		fso.CreateFolder bakFolder & "_" & i
		fso.CopyFolder updateFolder, bakFolder & "_" & i & "\", True
		Exit For
	End if
Next	
Set fso = Nothing

Shell:

updateFolder="/userFile/test"
bakFolder="/userFile/bak/"
todayDate=$(date +%y%m%d)
bakFolder=$bakFolder$todayDate
if [ ! -d $bakFolder ]; then 
        mkdir $bakFolder
fi
bakFolder=$bakFolder"/"$todayDate
MaxBakTime=10
for ((i=1;i<$MaxBakTime;i++))
do
        if [ ! -d $bakFolder"_"$i ]; then
                mkdir $bakFolder"_"$i
                cp -r $updateFolder $bakFolder"_"$i"/"
                break
        else
                if [ $i = $MaxBakTime ]; then
                        echo date
                fi
        fi
done





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值