利用PS脚本自动删除7天之前建立的目录-方法1!
目前有一个备份目录,目录名称为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!的更多相关文章
- 利用任务计划自动删除指定日期的SQLServer备份文件
利用任务计划自动删除指定日期的SQLServer备份文件 命令FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包
首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】
引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...
- 利用js代码自动删除稿件的普通弹幕
事情的起因是在b站投稿了一个高级弹幕测试的视频(av9940487),但是由于b站的弹幕池机制是新的弹幕顶掉旧的弹幕,所以导致一些人发的高级弹幕很快就被顶掉了. 所以就想着写个脚本来自动删除属性为普通 ...
- Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...
- 利用shell脚本自动获取awr报表
观察Oracle数据库性能,oracle自带的awr功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.通过报告可以了解一个系统的整个运行情况,生成的报告包括多个 ...
- [BAT]win7下用批处理脚本自动删除7天以前创建的文件
set JmeterPath=D:\apache-jmeter-2.7 forfiles /p %JmeterPath%\extras /m *.html -d -7 /c "cmd /c ...
- 自动删除超过30天文件的vbs脚本【转发】
利用代码制作自动删除超过30天的文件及文件夹的vbs脚本,定期清理文件夹中长时间无用文件. 1.首先在新建一个文本文档,粘贴代码(代码可通过添加微信公众号vbs_edit(VBS脚本之家)回复018获 ...
- shell脚本自动清理服务器日志、图片等信息
在做性能测试的时候,linux服务器时常会产生大量数据,如日志信息,图片信息,文件信息等,压测一段时间后,导致服务器磁盘空间暂满而崩溃,每天手动清理比较麻烦, 利用shell脚本自动清理,脚本如下 1 ...
随机推荐
- php 数组指针相关函数current(),next(),prev(),end()
mixed current(array target_array) current()函数返回位于target_array数组当前指针位置的数组值.与next().prev().和end()函数不同, ...
- 处理MySQL数据库出现大量Locked的一个案例 (转)
本文转自:http://blog.itpub.net/7607759/viewspace-696781/ 做为一款轻量级数据库软件,MySQL在使用过程中遇到访问速度慢,或者无法响应这类的问题,解决方 ...
- [unity菜鸟] 修改发布成web后的logo
1. 原始效果 (tip:在4.x的书中有介绍) 2. 打开.html文件原始代码如下 <script type='text/javascript' src='jquery.min.js'&g ...
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-007-给BEAN运行时注入值placeholder、@Value
一.用placeholder给bean运行时注入值的步骤 Spring取得placeholder的值是用${...} 1.声明placeholder bean (1)java方式 In order t ...
- 【原创】FPGA开发手记(一) UART接口
以下内容均以Xilinx的Nexys3作为开发板 1. UART简介 UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串 ...
- C++ CGI Helloword
一 什么是CGI CGI(The Common Gateway Interface):通用网关接口,定义web服务器和客户脚本进行信息交互的一系列标准. 二 web浏览器 为了了解CGI的概念,让我 ...
- __cdecl、__stdcall、__fastcall、thiscall 进栈、出栈区别
https://en.wikipedia.org/wiki/X86_calling_conventions https://msdn.microsoft.com/en-us/library/984x0 ...
- ruby编程语言-学习笔记2(第4章 表达式和操作符)
对属性和数组元素的赋值 o.m + = 1 ===>o.m = (o.m()+ 1) # 对 o.m()这个方法的结果+1 对数组元素的赋值也是通过 方法调用来完成. 0.[] = 1 == ...
- ashx文件结合ajax使用(返回json数据)
ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...
- XML新增、修改、选择
using System; using System.Linq; using System.Xml.Linq; using DFS.Kiosk.Provider.Simulator.Common.Ut ...