目前有一个备份目录,目录名称为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. 再撸一次简单的NODE.JS

    这毕竟大势所趋,了解一下无防的. 最终,对JS的要求还是有点高... 以后弄过一次,很快就忘了. 再来再拾起来一下. server.js var http = require("http&q ...

  2. centos 5.x 升级openssl

    今日想在centos 5.2上面安装mysql 5.5.37,在make的时候提示: Linking C shared module adt_null.so [ 65%] Built target a ...

  3. JNI|在子线程中获得JNIEnv|AttachCurrentThread

    A JNI interface pointer (JNIEnv*) is passed as an argument for each native function mapped to a Java ...

  4. The Little Redis Book

    一.概念简介: Redis: Redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写,详细的信息在Redis官网上面有,因为我自己通过google等各种渠道去学习Redis, ...

  5. org.springframework.jdbc.datasource

    org.springframework.jdbc.datasource.DataSourceUtils /** * Actually obtain a JDBC Connection from the ...

  6. ipconfig命令

    C:\Windows\System32>ipconfig -all Windows IP 配置 主机名 . . . . . . . . . . . . . : LuJunTao 主 DNS 后缀 ...

  7. js 获取服务器控件

    大致是HtmlControl被服务器发送到页面ID不变,比如<div id="a" runat="sever"></div> WebCo ...

  8. -_-#【网站优化】AJAX

    如何让搜索引擎抓取AJAX内容? Ajax 缓存: 两个重要的事实 使用 AJAX 事件触发 AJAX 请求.不要产生多次请求. 对 AJAX 请求使用 GET 方法 Use GET for AJAX ...

  9. Chrome的隐身模式

    先来说说隐身模式的启用方法吧 1.键盘快捷:Ctrl + Shift + N. 2.在Windows7下的任务栏处,右击“Chrome”图标,会出一个下拉菜单,点击“新建隐身窗口”. 3.你还可以在一 ...

  10. WCF 绑定(Binding)

    绑定包含多个绑定元素 ,它 们描述了所有绑定要求 .可以创建自定义绑定 ,也可以使用下表中的其中一个预定义绑定 : 不同的绑定支持不同的功能.以Ws开头的绑定独立于平台 ,支持 Web服务规范. 以 ...