目前有一个备份目录,目录名称为d:\temp\bak目录,在这目录下,根据备份要求,自动生成了如下目录的列表:

20131012

20131011

20131010

20131009

20131008

20131007

.............

现在需要自动删除7天之前的目录,只保留最近一周的目录备份数据。

当然删除方式有很多种方法,我们这里先讲下这个我们目前采用的方法,先把脚本写出来,我们根据脚本进行分析:

param
(
$removepath="d:\temp\bak",

#设定需要自动删除的目录
$logfilepath="d:\log\remove.log"

#制定删除文件的动作日志写入文本文件
)
$KeepDate=&{(Get-Date).tostring("yyyyMMdd"),(Get-Date).adddays(-1).tostring("yyyyMMdd"),(Get-Date).adddays(-2).tostring("yyyyMMdd"),(Get-Date).adddays(-3).tostring("yyyyMMdd"),(Get-Date).adddays(-4).tostring("yyyyMMdd"),(Get-Date).adddays(-5).tostring("yyyyMMdd"),(Get-Date).adddays(-6).tostring("yyyyMMdd")}

#这里将保留的周期求出来,(get-date) 求出来当前的时间,(get-date).adddays(-1) 求出的是昨天的日期,(get-date).adddays.tostring("yyyyMMdd")是将时间转换成年月日的时间的字符串,求出来的字符串将是{20131012,20131011,...}
$RemoveDirectorys=Get-ChildItem -Path $removepath -Exclude $KeepDate

#得出除了保留了目录之外的其他目录或者文件
if(!(test-path $logfilepath))

#判断是否存在日志文件,这里是不存在的意思
{
New-Item -ItemType file -Path $logfilepath

#新建一个文件,文件名称为相应的文件
}

foreach($RemoveDirectory in $RemoveDirectorys)

#根据得出的目录进行循环
{

$removestring="位于"+$removepath+"的"+$RemoveDirectory.name+"目录于"+(Get-Date).tostring("yyyy年MM月dd日HH时mm分ss秒")+"被删除"

#计算需要在日志中记录的日志的内容
Remove-Item -Path $RemoveDirectory.fullname -force -Recurse

#依据循环的文件集合删除当前的目录

if($?)

#如果命令执行成功,则执行如下语句!
{
$removestring |Out-File -Append -filepath $logfilepath

#以追加的方式将日志写入日志文件
}

}

OK ,上面就是执行过程的解释,我们来看一个例子,图片如下:

接下来我们执行下这个脚本:

执行完成后,我们发现目录和文件已经被删除:

在日志文件中呢,我们能够很明显的看到日志记录的内容:

利用PS脚本自动删除7天之前建立的目录-方法1!的更多相关文章

  1. 利用任务计划自动删除指定日期的SQLServer备份文件

    利用任务计划自动删除指定日期的SQLServer备份文件 命令FORFILES [/P pathname] [/M searchmask] [/S]         [/C command] [/D ...

  2. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  3. 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】

    引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...

  4. 利用js代码自动删除稿件的普通弹幕

    事情的起因是在b站投稿了一个高级弹幕测试的视频(av9940487),但是由于b站的弹幕池机制是新的弹幕顶掉旧的弹幕,所以导致一些人发的高级弹幕很快就被顶掉了. 所以就想着写个脚本来自动删除属性为普通 ...

  5. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  6. 利用shell脚本自动获取awr报表

    观察Oracle数据库性能,oracle自带的awr功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.通过报告可以了解一个系统的整个运行情况,生成的报告包括多个 ...

  7. [BAT]win7下用批处理脚本自动删除7天以前创建的文件

    set JmeterPath=D:\apache-jmeter-2.7 forfiles /p %JmeterPath%\extras /m *.html -d -7 /c "cmd /c ...

  8. 自动删除超过30天文件的vbs脚本【转发】

    利用代码制作自动删除超过30天的文件及文件夹的vbs脚本,定期清理文件夹中长时间无用文件. 1.首先在新建一个文本文档,粘贴代码(代码可通过添加微信公众号vbs_edit(VBS脚本之家)回复018获 ...

  9. shell脚本自动清理服务器日志、图片等信息

    在做性能测试的时候,linux服务器时常会产生大量数据,如日志信息,图片信息,文件信息等,压测一段时间后,导致服务器磁盘空间暂满而崩溃,每天手动清理比较麻烦, 利用shell脚本自动清理,脚本如下 1 ...

随机推荐

  1. php 数组指针相关函数current(),next(),prev(),end()

    mixed current(array target_array) current()函数返回位于target_array数组当前指针位置的数组值.与next().prev().和end()函数不同, ...

  2. 处理MySQL数据库出现大量Locked的一个案例 (转)

    本文转自:http://blog.itpub.net/7607759/viewspace-696781/ 做为一款轻量级数据库软件,MySQL在使用过程中遇到访问速度慢,或者无法响应这类的问题,解决方 ...

  3. [unity菜鸟] 修改发布成web后的logo

    1. 原始效果  (tip:在4.x的书中有介绍) 2. 打开.html文件原始代码如下 <script type='text/javascript' src='jquery.min.js'&g ...

  4. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-007-给BEAN运行时注入值placeholder、@Value

    一.用placeholder给bean运行时注入值的步骤 Spring取得placeholder的值是用${...} 1.声明placeholder bean (1)java方式 In order t ...

  5. 【原创】FPGA开发手记(一) UART接口

    以下内容均以Xilinx的Nexys3作为开发板 1. UART简介 UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串 ...

  6. C++ CGI Helloword

    一 什么是CGI CGI(The Common Gateway Interface):通用网关接口,定义web服务器和客户脚本进行信息交互的一系列标准.  二 web浏览器 为了了解CGI的概念,让我 ...

  7. __cdecl、__stdcall、__fastcall、thiscall 进栈、出栈区别

    https://en.wikipedia.org/wiki/X86_calling_conventions https://msdn.microsoft.com/en-us/library/984x0 ...

  8. ruby编程语言-学习笔记2(第4章 表达式和操作符)

    对属性和数组元素的赋值 o.m + = 1  ===>o.m = (o.m()+ 1)  # 对 o.m()这个方法的结果+1 对数组元素的赋值也是通过 方法调用来完成. 0.[] = 1 == ...

  9. ashx文件结合ajax使用(返回json数据)

    ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...

  10. XML新增、修改、选择

    using System; using System.Linq; using System.Xml.Linq; using DFS.Kiosk.Provider.Simulator.Common.Ut ...