这是我到目前为止所拥有的
Get-ChildItem \\testserver01\m$\mssql\backup, \\testserver01\m$\MSSQL\Backup, \\testserver01\m$\MSSQL_TRAINING\Backup -Recurse -filter "*.BAK" | Select Name,Directory,CreationTime,LastWriteTime, @{Name="Mbytes";Expression={ "{0:N0}" -f ($_.Length / 1Mb) }} |
Sort-Object Directory,Name,CreationTime |
where-object { -not $_.PSIsContainer } |
sort-object -Property $_.CreationTime |
select-object -last 1 |
out-gridview
这3个服务器中的每一个运行6个差异数据库的备份..因此每个服务器需要6个文件 现在它从所有这些中提取最新文件。我需要每个服务器和每个bakup的最新文件(每个数据库有3天滚动)
答案 0 :(得分:0)
指出要注意,Sort-Object将在收集所有数据后进行排序,因此使用排序应该是最小的,并且不使用Out-GridView,因为它在Foreach循环中。
这里是从所有服务器收集数据并从整个列表中取一个。
'\\testserver01\m$\mssql\backup','\\testserver01\m$\MSSQL\Backup','\\testserver01\m$\MSSQL_TRAINING\Backup' | Foreach-Object -Process {
Get-ChildItem -path $_ -Recurse -filter "*.BAK" | Select Name,Directory,CreationTime,LastWriteTime, @{Name="Mbytes";Expression={ "{0:N0}" -f ($_.Length / 1Mb) }} |
where-object { -not $_.PSIsContainer } |
sort-object -Property $_.CreationTime |
Select-Object -Unique
}
此致
Kvprasoon