<Power Shell>09 利用powershell 查找旧文件
2013-06-24 14:16
786 查看
HI ,大家好。
当我们谈到利用PowerShell中找到旧文件
我们的第一反应就是其中涉及减去DateTime对象或使用比较操作符。
例如,如果我们要删除超过14天所有文件,我们可以试一下。
每个FileInfo对象LastWriteTime属性大于一个DateTime对象并且减去14天
虽然这样,但是还不是我们想要得到的,因为上面的例子并没有准确的说明时间。我们可以创建一个列表,并且创建一个新的属性
请看下面这个例子
现在我们得到了三列的输出显示表,包括每个目录的时间和每个文件
我们所使用的是从当前的date减去lastwritetime,这会产生出一个新的timespan对象,然后我们调用日期属性来得到我们想要的结果。
但是如果我们对于新的时间间隔对于文件系统对象,会得到上面执行后相同的结果吗?好,cantgis 带大家试一试。
好的,大家看到了system.ini的天数是137天 ,我们接下来进一步的了解的查看新的时间间隔参数(timespan)
这里讲一下这个lastwritetime的别名定义
如果传入对象有一个属性:名称
它将会自动绑定到start参数 (而对于我们操作用户来讲,这将非常工整)
所以cantgis 基于上面写一个非常简短的表达
希望大家能够喜欢Cantgis 今天带给大家关于新参数timespan、lastwritetime 的介绍和使用,查找到老旧文件。
当我们谈到利用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 的介绍和使用,查找到老旧文件。
相关文章推荐
- <Power Shell>02 认识powershell
- <Power Shell>11 查找Active Directory中的所有组同组成员
- <Power Shell>08当你远程运行powershell指令(不需要管理员权限)
- <Power Shell>05解决powershell3.0收集数据时候数组生成
- <Power Shell>03 在PowerShell 3.0重新启动计算机指令 推荐
- <Power Shell>17 从PowerShell查询MSDN
- <Power Shell>19 使用.NET class创建指定文件和零字节文件
- <Power Shell>04 使用PowerShell管理组策略02
- Spring中利用AOP对领域对象(非依赖注入的对象,如new操作符、反射的方式生存的对象)下面是spring配置文件的一部分 <context:load-time-weaver /> <be
- <Power Shell>18 通过电子邮件获取SharePoint 2010的健康分析仪警报报告
- <Power Shell>04 使用PowerShell管理组策略01
- <Power Shell>22 在GitHub和Markdown上高亮的方法 推荐
- <Power Shell>01 四则运算和数组简单使用
- <实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向
- <html:form ....>为何可以利用上一个文件中的Form给自己自动赋值
- <Power Shell>07查询AD角色拥有者和备份企业SQL数据库和日志
- <Power Shell>20 在ISE 3.0展示键盘快捷键的完整列表
- shell中比较字符串大小,>和<前需要加上\进行转义,否则会输出到文件了
- <Power Shell>10 删除个人存储中过期的证书 推荐
- <Power Shell>13 powershell三个实用特性和功能实例 推荐