我的情况是文件夹结构中有 3000 个供应商。然后,每个供应商都有每年(2001 年,.... 2014 年)的文件夹以及其他文件夹。有没有办法列出最近一年(以哪一年为准)的所有文件。
基本上,我需要将所有最新的协议文件从文件共享上传到 SharePoint。
我的情况是文件夹结构中有 3000 个供应商。然后,每个供应商都有每年(2001 年,.... 2014 年)的文件夹以及其他文件夹。有没有办法列出最近一年(以哪一年为准)的所有文件。
基本上,我需要将所有最新的协议文件从文件共享上传到 SharePoint。
首先,我将递归遍历所有目录,匹配与当前年份等效的目录:
$thisYearDirs = get-childitem -Directory -Recurse | where {$_.Name -eq (get-date).year}
那么您将只获取每个文件中的文件:
$thisYearDirs | get-childitem
您也可以在一行中完成所有操作:
get-childitem -Directory -Recurse | where {$_.Name -eq (get-date).year} | get-childitem
注意-directory
交换机需要powershell v3,你可以通过修改where子句条件来过滤掉早期版本的目录:
get-childitem -Recurse | where {$_.PSIsCOntainer -and $_.Name -eq (get-date).year} | get-childitem
一个班轮
Get-ChildItem | %{ $_.FullName | Get-ChildItem [1-9][0-9][0-9][0-9] | sort -Descending | Select-Object -First 1 | Get-ChildItem }
您从根文件夹开始,对于每个文件夹,您都会获得名称看起来像一年的所有文件夹,对它们进行排序,取第一个,然后获得所有文件夹。
当然,这有很多问题。例如,必须至少有一年的文件夹,没有“年”文件等。我会让你解决这类问题。