powershell - 使用 PowerShell 仅查找名为 OLD 且具有一定期限的子目录中的文件

标签 powershell

如何在包含多个 OLD 文件的目录树中获取良好的文件列表?

我只想查看名为 OLD 的目录中具有一定期限的文件。

最佳答案

据我了解这个问题,Raoul Supercopter's solution并没有完全回答这个问题。上述解决方案不是从名为“OLD”的目录中查找所有文件,而是查找名称中包含“OLD”的所有文件。

相反,我认为您要求的内容是查找名为 OLD 的目录中早于特定日期的所有文件。

因此,要查找目录,我们需要如下内容:

dir -r | ? {$_.name -match "\bold\b" -and $_.PSIsContainer}

但是您随后需要可以递归地遍历每个目录并查找文件(以及可能包含在其他名为“OLD”的目录中的任何名为“OLD”的目录)的东西。

最简单的方法是编写一个函数,然后递归调用它,但这里有一种在一行上执行此操作的方法,该方法采用不同的策略(请注意行继续字符,以便这适合:

dir -r | ? {!$_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date 5/1/2006)} `
| ? {(% {$_.directoryname} | split-path -leaf) -eq "OLD"}

那么,这里发生了什么?

第一部分只是基本的递归目录列表。下一部分将检查以确保您正在查看文件 (!$_.PSIsContainer) 并且它符合您的年龄要求。 Get-Date 两边的括号部分可让您获取运行命令的结果。然后,我们获取每个文件的目录名称,并使用 split-path cmdlet 获取最近目录的名称。如果该文件是“旧”,那么我们有一个符合您要求的文件。

关于powershell - 使用 PowerShell 仅查找名为 OLD 且具有一定期限的子目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680881/

相关文章:

powershell - 如何在命令行参数中正确地转义空格和反斜杠?

javascript - 如何将过滤器批量添加到文件选择器?

design-patterns - Powershell 脚本 : recommended way to implement ShouldProcess when function calls are nested?

powershell - 由于 Azure Key Vault 内部错误,具有 Bit-locker 的 Azure VM 现在无法解密?

powershell - 如何在 Teamcity 中设置内部版本号?

powershell - 内存使用 powershell 7.03 Foreach-object 并行

powershell - 按字母顺序排序,小写在大写之前?

sql-server - PowerShell获取SQL Server计数器

json - 从类型 JSON 属性中提取属性

powershell - 如何确保一次只运行一个脚本实例?