博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<Power Shell>09 利用powershell 查找旧文件
阅读量:6857 次
发布时间:2019-06-26

本文共 1905 字,大约阅读时间需要 6 分钟。

HI ,大家好。
当我们谈到利用PowerShell中找到旧文件
我们的第一反应就是其中涉及减去DateTime对象或使用比较操作符。
例如,如果我们要删除超过14天所有文件,我们可以试一下。
每个FileInfo对象LastWriteTime属性大于一个DateTime对象并且减去14天

1
2
3
4
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
虽然这样,但是还不是我们想要得到的,因为上面的例子并没有准确的说明时间。我们可以创建一个列表,并且创建一个新的属性
请看下面这个例子

1
2
PS> 
$age 
= @{Name=
'Age(Days)'
;Expression={((
Get-Date
) - 
$_
.LastWriteTime).Days}}
PS> 
Get-ChildItem 
Select-Object 
-Property 
Name,FullName,
$age

现在我们得到了三列的输出显示表,包括每个目录的时间和每个文件
我们所使用的是从当前的date减去lastwritetime,这会产生出一个新的timespan对象,然后我们调用日期属性来得到我们想要的结果。

但是如果我们对于新的时间间隔对于文件系统对象,会得到上面执行后相同的结果吗?好,cantgis 带大家试一试。

1
2
3
4
5
6
7
8
9
10
11
12
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)

1
2
3
4
5
6
7
8
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 基于上面写一个非常简短的表达

1
2
PS> 
$age 
= @{Name=
'Age(Days)'
;Expression={(
$_ 
New-TimeSpan
).Days}}
PS> 
Get-ChildItem 
Select-Object 
-Property 
Name,FullName,
$age

希望大家能够喜欢Cantgis 今天带给大家关于新参数timespan、lastwritetime 的介绍和使用,查找到老旧文件。

     本文转自cantgis 51CTO博客,原文链接:http://blog.51cto.com/cantgis/1228301,如需转载请自行联系原作者

你可能感兴趣的文章
发力云安全:Sophos收购云安全公司Avid Secure
查看>>
李书福:马化腾天天看我们的微信,商业机密泄露很苦恼
查看>>
华为FusionInsight LibrA融合数仓荣获2018数博会领先科技成果奖
查看>>
Linksys EA9300对垒网件R8000P!谁能成功笑到最后?
查看>>
高校里的一卡通打印:付费方便,简单快捷
查看>>
长沙玻璃桥上的“年味” 外籍游客学写对联贺新春
查看>>
ARKit 让未来触手可及
查看>>
雪松控股与乌克兰工商会签署战略协议
查看>>
2019年春运 北京铁路公安“石铁”警方送“福”回家
查看>>
哈工创投发布全新品牌形象 聚焦商业航天科技开启新征程
查看>>
国企混改加码 石油等行业将持续发力
查看>>
项目经理退休前给手下的程序员讲解的最后一个Java知识要点!
查看>>
打造指数级繁荣生态——华为中国生态伙伴大会2018前瞻
查看>>
Spring【DAO模块】就是这么简单
查看>>
Service Mesh的未来将与Knative和Apahce Whisk等技术和谐共存——采访RedHat的Istio产品经理...
查看>>
[闲鱼技术] Flutter React编程范式实践
查看>>
[上海线下活动] AI+教育 专场 -- 沪江技术沙龙
查看>>
中小型互联网公司微服务实践-经验和教训
查看>>
一个强大图片的选择、裁剪工具—看这一个就够用了
查看>>
Google搜索技巧
查看>>