利用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 ...
随机推荐
- 【NOIP 2012 开车旅行】***
题目描述 小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的 城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 Hi,城市 ...
- easyui源码翻译1.32--LinkButton(按钮)
前言 使用$.fn.linkbutton.defaults重写默认值对象.下载该插件翻译源码 按钮组件使用超链接按钮创建.它使用一个普通的<a>标签进行展示.它可以同时显示一个图标和文本, ...
- 在C++中子类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...
- write & read a sequence file(基于全新2.2.0API)
write & read a sequence file write & read a sequence file import java.io.IOException; import ...
- Memcached 拒绝服务漏洞
漏洞名称: Memcached 拒绝服务漏洞 CNNVD编号: CNNVD-201401-176 发布时间: 2014-01-15 更新时间: 2014-01-15 危害等级: 漏洞类型: ...
- c语言时间库函数#include<time.h>
日期与时间函数<time.h> 头文件<time.h>中说明了一些用于处理日期和时间的类型和函数.其中的一部分函数用于处理当地时间,因为时区等原因,当地时间与日历时间可能不相同 ...
- [Android] An internal error occurred during: "Launching New_configuration". Path for project must have only one segment.
出错: An internal error occurred during: "Launching New_configuration". Path for project mus ...
- 【转】JVM 基础知识
几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西.突然发现,基础真的很重要.学习的过程是一个由表及里,再由里及表的过程,所谓的“温故而知新”.而真正能走完这个轮回的人,也就能 ...
- PHP静态化之真静态化
参考文献:http://blog.sina.com.cn/s/blog_66aa1142010114lc.html 采用了动态服务器技术生成静态HTML的做法,这样做的好处是:一是能减轻其服务器的负担 ...
- 实现简单的WebPart
转:http://www.cnblogs.com/gaoweipeng/archive/2009/10/26/1589269.html 在前面的文章中,我们讲解了很多基础的内容,主要包括安装配置.简单 ...