跟進這個問題:How to get a value in a foreach loop into a sum?如何在PowerShell中的foreach中忽略空值?
我有這個片段的PowerShell代碼:
$TotalHomeDirSizeMB = 0
foreach ($user in $ListofUsers)
{
# Calculate sum of file sizes, grab Sum property value directly
$HomeDirSize = (Get-ChildItem $user.HomeDirectory -Recurse | Measure-Object -Property length -sum).Sum
# Calculate and store size in MB
$HomeDirSizeMB = "{0:N2}" -f ($HomeDirSize/1MB)
# Add to cumulative size variable
$TotalHomeDirSizeMB += $HomeDirSizeMB
# Write results to screen + file
Write-Host "`r`n Size of:" $user.HomeDirectory
Write-Host ("{0:N2} MB" -f $HomeDirSizeMB)
"$($user.HomeDirectory) = $HomeDirSizeMB MB" | Out-File $LogFileName -Append
# Remove Home Directory
Remove-Item $user.HomeDirectory -Force -Recurse -ErrorAction SilentlyContinue
Write-Host "`r`n Removed HomeDirectory: " $user.HomeDirectory
# Wait for user to verify deletion from AD, preempt Confirmation if verified
Write-Host "`r`n Verifying you want to remove the user: " $user.Name -ForegroundColor Yellow -BackgroundColor Red
if ((Read-Host -Prompt "y for yes") -eq 'y'){
Remove-ADObject $user.DistinguishedName -Confirm:$false
}
}
Write-Host "Removed $TotalHomeDirSizeMB MB"
我需要一種方法來處理腳本不示數出來,如果用戶的home目錄是在這個AD屬性NULL 。
我認爲這將是一個嵌入式IF語句低於foreach,但我不能讓If語句正常工作,我不斷收到語法錯誤。
任何人都可以協助什麼IF語句將確保只有在HomeDirectory有值的情況下運行foreach代碼?
你好,請給我們用'if'塊的嘗試(編輯你的問題),它是相當容易的,你有幫助很快。 – sodawillow
@sodawillow - 我在做如果{$ _。HomeDirectory -ne $ null},但是如果該屬性是空的,它仍然會出錯......不知道爲什麼 – TheCleaner
您需要parens'()'而不是大括號'{} ' – sodawillow