我是 PowerShell 的新手。我想编写一个简单的程序来列出所有 *.bak 文件,然后我可以按日期或大小对其进行排序,如下所示。
$Drives = Get-WMIObject -class win32_logicaldisk -filter "DriveType = 3" ;
foreach ($d in $Drives){
If (($d.deviceId -ne "C:") -and ($d.VolumeName -ne "PAGEFILE")) {
$backups += Get-ChildItem -Path $d.deviceID -Recurse -filter *.bak
}
这通常可以正常工作,除非说例如 D: 驱动器只有一个 *.bak 文件。在这种情况下,我得到一个错误。
Method invocation failed because [System.IO.FileInfo] doesn't contain a method named 'op_Addition'.
At F:\work\PowerShell\DiskSpace\generate-disk-report-v2.ps1:39 char:13
+ $backups += <<<< Get-ChildItem -Path $d.deviceID -Recurse -filter *.bak
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
如果我向该驱动器添加额外的 junk.bak,它可以正常工作。