设为首页 收藏本站
查看: 1126|回复: 0

09 利用powershell 查找旧文件

[复制链接]

尚未签到

发表于 2018-9-3 07:30:12 | 显示全部楼层 |阅读模式
  HI ,大家好。
  当我们谈到利用PowerShell中找到旧文件
  我们的第一反应就是其中涉及减去DateTime对象或使用比较操作符。
  例如,如果我们要删除超过14天所有文件,我们可以试一下。
  每个FileInfo对象LastWriteTime属性大于一个DateTime对象并且减去14天
PS> $date = (Get-Date).AddDays(-14)  
PS> Get-ChildItem -Path D:\Temp -Recurse |
  
Where-Object {-not $_.PsIsContainer -and $_.LastWriteTime -gt $date } |
  
Remove-Item -WhatIf
  在上面的小例子中,我们在过去的某一天中初始化了$data(日期),当旧的文件被我们发现时候是基于lastwritetime属性,它是通过对象删除项的cmdlet
  虽然这样,但是还不是我们想要得到的,因为上面的例子并没有准确的说明时间。我们可以创建一个列表,并且创建一个新的属性
  请看下面这个例子
PS> $age = @{Name='Age(Days)';Expression={((Get-Date) - $_.LastWriteTime).Days}}  
PS> Get-ChildItem | Select-Object -Property Name,FullName,$age
  现在我们得到了三列的输出显示表,包括每个目录的时间和每个文件
  我们所使用的是从当前的date减去lastwritetime,这会产生出一个新的timespan对象,然后我们调用日期属性来得到我们想要的结果。
  但是如果我们对于新的时间间隔对于文件系统对象,会得到上面执行后相同的结果吗?好,cantgis 带大家试一试。
PS> Get-ChildItem -Path $env:WINDIR\system.ini | New-TimeSpan  
Days              : 137
  
Hours             : 4
  
Minutes           : 34
  
Seconds           : 54
  
Milliseconds      : 274
  
Ticks             : 118532942742544
  
TotalDays         : 137.190905952019
  
TotalHours        : 3292.58174284844
  
TotalMinutes      : 197554.904570907
  
TotalSeconds      : 11853294.2742544
  
TotalMilliseconds : 11853294274.2544
  好的,大家看到了system.ini的天数是137天 ,我们接下来进一步的了解的查看新的时间间隔参数(timespan)
PS> (Get-Command New-TimeSpan).Parameters['Start']  
Name            : Start
  
ParameterType   : System.DateTime
  
ParameterSets   : {[Date, System.Management.Automation.ParameterSetMetadata]}
  
IsDynamic       : False
  
Aliases         : {LastWriteTime}
  
Attributes      : {System.Management.Automation.AliasAttribute, Date}
  
SwitchParameter : False
  这里讲一下这个lastwritetime的别名定义
  如果传入对象有一个属性:名称
  它将会自动绑定到start参数 (而对于我们操作用户来讲,这将非常工整)
  所以cantgis 基于上面写一个非常简短的表达
PS> $age = @{Name='Age(Days)';Expression={($_ | New-TimeSpan).Days}}  
PS> Get-ChildItem | Select-Object -Property Name,FullName,$age
  希望大家能够喜欢Cantgis 今天带给大家关于新参数timespan、lastwritetime 的介绍和使用,查找到老旧文件。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-561777-1-1.html 上篇帖子: 05解决powershell3.0收集数据时候数组生成 下篇帖子: PowerShell获取系统日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表