Tôi đang bối rối ở đây về những gì có vẻ là một vấn đề đơn giản; xin lỗi vì bất cứ cái đầu xương nào ở đây.Làm thế nào để Get-ChildItem được kiểm tra không có kết quả (0 tệp)?
Tôi có tập lệnh xóa các tệp sao lưu không còn tồn tại. Sau khi xác định các tập tin tôi lặp lại và in ra những gì đang được bán phá giá. Vấn đề của tôi nảy sinh khi cố gắng cung cấp phản hồi/thử nghiệm khi không có tệp không tồn tại. Tập lệnh có dạng ...
$Files = Get-ChildItem $BackupPath_Root -include *.bak -recurse
| where {$_.CreationTime -le $DelDate_Backup }
if ($Files -eq "" -or $Files.Count -eq 0) {
write-host " no files to delete." #<-- this doesn't print when no files
} else {
foreach ($File in $Files) {
write-host “$File”
Remove-Item $File | out-null
}
}
Nếu việc kiểm tra không có tệp nào sẽ không bắt gặp điều kiện tệp. Cách thích hợp để kiểm tra $Files
không có kết quả là gì?
Đây là một thủ thuật tuyệt vời cho xử lý mảng PowerShell kỳ quặc/phiên dịch. Cảm ơn! –
Được tăng lên vì đây là ý kiến của tôi về cách thức đúng (và dễ) để xử lý các mảng có thể là null hoặc nơi mà đường dẫn sau sẽ thất bại nếu nó là rỗng. – CosmosKey