创建一个PowerShell脚本以查找Windows.old文件夹的存在。如果该文件夹存在,脚本将检查该文件夹的使用期限是否超过14天。如果年龄超过14天,则将输出设置为“ 1”。如果年龄小于14天,则输出应为“ 0”。如果该文件夹不存在,脚本还应将输出设置为“ 0”。
下面是我在前两个条件正常的情况下创建的脚本。对于第三种情况,它将根据需要提供输出(0),但显示如图所示的错误。我们是否可以选择没有错误消息的输出。
$limit = (Get-Date).AddDays(-15)
$path = "C:\Windows.old"
$test = Test-Path $path
$task = ((Get-Item $path |
Where-Object { $_.CreationTime -lt $limit }))
if ($test -eq $true) {
if ($task) {
$compliance ='1'
} else {
$compliance ='0'
}
$compliance
}
if ($test -eq $false) {
Write-host '0'
}
答案 0 :(得分:0)
所以我写了一个函数,它应该可以满足您的需求
function Get-ItemTest(){
Param(
[Parameter(ValueFromPipeline, Mandatory=$True)]
[string]$Path,
[Parameter(Mandatory=$True)]
[DateTime]$Limit
)
process{
if(Test-Path $Path){
Get-Item $path | %{
if($_.Creationtime -lt $Limit){
new-object psobject -Property @{Name=$_.FullName;Compliance=1}
}else{
new-object psobject -Property @{Name=$_.FullName;Compliance=0}
}
}
}else{
new-object psobject -Property @{Name=$Path;Compliance=0}
}
return $Response
}
}
Get-ItemTest -Limit (get-date).AddDays(-15) -Path "C:\Windows"
"C:\Windows.old", "C:\Windows","C:\Users" | Get-ItemTest -Limit (get-date).AddDays(-15)
让我们回顾一下这里发生的事情。
在您的脚本中
$task = ((Get-Item $path | Where-Object { $_.CreationTime -lt $limit }))
在测试路径是否有效之前,您已经在尝试获取商品。 您可以使用 Test-Path
将其封装在 IF 语句中if(Test-Path $Path){
Get-Item ...
}else{
"failed"
}