【发布时间】:2018-11-02 20:28:10
【问题描述】:
我必须制作 powershell 文件,我需要比较 2 个日期并删除文件夹,这就像上次写入项目的 10 天以上。就像今天是 10 月 30 日,我需要删除日期比较为 11 12 和 13 天的文件夹
#ChildItem "\\server\Backup" -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays.(-30) }
#$fulllist =Get-ChildItem "\\server\Backup\SharePoint Backup\"| Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays.(5) }
$fulllist =Get-ChildItem "\\server\Backup\SharePoint Backup\"
#$fulllist =Get-ChildItem "\\server\Backup\SharePoint Backup\" -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays.(-20) }
foreach ($fileitem in $fulllist)
{
$filename_big = $fileitem.FullName
#write-host $filename_big
$d = [datetime](Get-ItemProperty -Path $filename_big -Name LastWriteTime).lastwritetime
$d1=(get-date)
#write-host $d
#write-host $d1
$ts = New-TimeSpan -Start $d -End $d1
$ts.Days # Check results\
write-host $ts
if($ts -gt 10)
{
write-host "inside"
}
# Move-Item -Path $filename_big -Destination "\\DBORION\d$\backup"
}
我比较两个日期 $d 和 d1 并且天数大于 10,文件夹应该被删除。 但是随着输出 iam 进入所有文件夹,无论是 10 天还是 5 天,请查找输出
0
00:58:29.2923431
inside
0
13:33:32.4388907
inside
0
07:02:28.0900378
inside
0
03:52:35.3425970
inside
0
00:58:29.4017400
inside
13
13.08:49:05.4930775
inside
12
12.08:49:06.3403154
inside
11
11.08:48:31.4681438
inside
10
10.08:48:18.6859604
inside
9
9.08:49:01.2220544
inside
8
8.08:39:56.7230423
inside
7
7.08:48:15.3242000
inside
6
6.08:49:03.6123002
inside
5
5.08:49:08.5439345
inside
4
4.08:49:06.6188386
inside
3
3.08:49:07.2066345
inside
2
2.08:49:06.2290185
inside
1
1.08:45:07.0454477
inside
0
08:47:24.1939025
inside
好的,我知道了
$fulllist = Get-ChildItem "\\Server\Backup\SharePoint Backup\"
$Days = 12
foreach ($fileitem in $fulllist)
{
$filename_big = $fileitem.FullName
$deletedate = (Get-Date).AddDays(-$Days)
$Folderdate = [datetime](Get-ItemProperty -Path $filename_big -Name LastWriteTime).lastwritetime
if($Folderdate -le $deletedate)
{
$filename_big
Remove-Item -Path $filename_big -Force -Confirm:$false
}
}
现在我唯一关心的是它要求确认删除,我不希望那个弹出框如何绕过它
【问题讨论】:
标签: powershell