Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1236026
  • 博文数量: 135
  • 博客积分: 10576
  • 博客等级: 上将
  • 技术积分: 1670
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-11 20:49
个人简介

不疯魔,不成活! --疯魔老杨(Crazy.LaoYang) http://www.inotes.cn/

文章分类

全部博文(135)

文章存档

2014年(4)

2012年(13)

2011年(5)

2010年(30)

2009年(56)

2008年(27)

分类: WINDOWS

2012-03-02 09:17:41

前言:
    一朋友维护的一个WINDOWS系统,安装了国内某个相当知名厂商的安全行为设备的日志文件,文件相当的大,生成文件的个数也很多,这个WINDOWS挂载了网络存储,这个安全软件不支持直接将日志写到网络存储的驱动器下,所以,我帮朋友写了个“自动迁移的BAT脚本”,有类似需求的,可参考。

文件:
@echo off
color a
Title 自动迁移日志文件

setlocal enabledelayedexpansion

rem 定义文件源目录
set sourcedir=e:\aaa

rem 定义文件目标路径
set targetdir=f:\bbb

rem 定义源文件保留日志文件数
set xfile=5


rem 定义脚本运行时间间隔(单位:秒)
set wtime=600

rem 定义文件格式匹配
set fileformat=*.gif
set ext=gif

:start
for /f %%w in ('"dir /T/OD %sourcedir%\%fileformat% |findstr "%ext%""') do (
set/a %i+=1
)
set/a allfiles=%i%
set/a loops=%i%-%xfile%
echo 当前时间:%date% %time%
echo 提示:保留最新创建的%xfile%个文件,源目录%sourcedir%中其他文件将迁移%targetdir%目录中.....
echo.

if  %loops% LEQ 0 echo "暂无要迁移的文件!"

for /f " tokens=1,2,3,4" %%a in ('"dir /T/OD %sourcedir%\%fileformat% |findstr "%ext%""') do (
set/a %y+=1
if !y! LEQ %loops% move/Y %sourcedir%\%%d %targetdir% && echo "%sourcedir%:%%d -------->%targetdir%"
)

ping 127.0.0.1 -n %wtime% >%sourcedir%\null

goto :start


补充说明
1)网上有直接软件或破解软件来实现自动迁移/启动备份功能,但多数限于一天的某个时间,支持一天内多次运行的软件很少;
2)有的朋友可能是考虑用文件名通配来实现,但是在WINDOWS下,因为系统时间显示的格式不好确定,所以实现上很有点麻烦;
3)本脚本主要通过产生的文件时间为参考,只在源文件夹中保留指定个数的最新生成的文件,将其他的文件全部进行迁移。
阅读(1624) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

小布丁姐姐2012-03-06 09:56:13

恩,直接找个软件比较容易!