0

我的情况是文件夹结构中有 3000 个供应商。然后,每个供应商都有每年(2001 年,.... 2014 年)的文件夹以及其他文件夹。有没有办法列出最近一年(以哪一年为准)的所有文件。

基本上,我需要将所有最新的协议文件从文件共享上传到 SharePoint。

4

2 回答 2

0

首先,我将递归遍历所有目录,匹配与当前年份等效的目录:

$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
于 2013-10-04T17:36:19.897 回答
0

一个班轮

Get-ChildItem | %{ $_.FullName | Get-ChildItem [1-9][0-9][0-9][0-9] | sort -Descending | Select-Object -First 1 | Get-ChildItem }

您从根文件夹开始,对于每个文件夹,您都会获得名称看起来像一年的所有文件夹,对它们进行排序,取第一个,然后获得所有文件夹。

当然,这有很多问题。例如,必须至少有一年的文件夹,没有“年”文件等。我会让你解决这类问题。

于 2013-10-04T14:48:47.210 回答