即备份文件到当天日期文件夹内,多次备份时便放入“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