gpt4 book ai didi

powershell - 如何防止 Get-ChildItem 遍历特定目录?

转载 作者:行者123 更新时间:2023-12-04 14:57:36 25 4
gpt4 key购买 nike

首先让我说我看过 Unable to exclude directory using Get-ChildItem -Exclude parameter in PowershellHow can I exclude multiple folders using Get-ChildItem -exclude? .这些都没有解决我的问题的答案。

我需要递归搜索目录以查找具有特定扩展名的文件。为简单起见,假设我需要找到 *.txt .通常,此命令就足够了:

Get-ChildItem -Path 'C:\mysearchdir\' -Filter '*.txt' -Recurse

但我有一个大问题。有一个 node_modules目录埋在某处 C:\mysearchdir\ , NPM 创建极深的嵌套目录。 (它是 NPM 托管目录的细节很重要,因为这意味着深度超出了我的控制。)这会导致以下错误:
Get-ChildItem : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

我相信这个错误是由 .NET IO 库中的限制引起的。

我不能很容易地在它周围的其他目录中搜索。它不在目录的顶部;它更深,在 C:\mysearchdir\dir1\dir2\dir3\node_modules 说,并且我需要在所有这些级别搜索目录。因此,随着更多文件和目录的添加,仅搜索它周围的其他目录将会很麻烦并且不太易于维护。

我试过 -Exclude参数没有任何成功。这并不奇怪,因为我 just read那个 -Exclude仅在获取结果后应用。我找不到有关使用 -Filter 的任何真实信息(如 this answer 中所述)。

有什么办法可以得到 Get-ChildItem工作,还是我一直在写我自己的递归遍历?

最佳答案

哦,伙计,我觉得自己很愚蠢。我和你面临着同样的问题。当我到达“-EA SilentlyContinue”部分时,我正在使用@DarkLite1 的答案,试图解析它。

FACEPALM

面部护理!

这就是你所需要的!

这对我有用,试试看:

Get-ChildItem -Path 'C:\mysearchdir\' -Filter '*.txt' -Recurse -ErrorAction SilentlyContinue

注:这不会从搜索中排除 node_modules,只是隐藏遍历长路径产生的任何错误。如果您需要完全排除它,您将需要一个更复杂的解决方案。

关于powershell - 如何防止 Get-ChildItem 遍历特定目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28977651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com