问题标签 [get-childitem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1710 浏览

powershell - Get-Childitem 解决方法

我想确定哪些文件/文件类型在文件服务器上占用的空间最多。由于许多用户创建的文件名称/路径长度超过 260 char gci 不起作用。(shortcuts-in-shortcuts-in-shortcuts-infinity)

我的下一步是通过使用显示的东西来创建解决方法,大小文件名和路径没有 max_path var 限制。(ROBOCOPY)

这是我的功能:

}

这种方法有效,但我的问题是它消耗大量资源。

有人知道如何改进此功能....也许是另一种解决方法的想法?

0 投票
1 回答
10933 浏览

powershell - PowerShell v3 中的 Get-ChildItem 出现 PathTooLong 错误,但不是 v2

Windows Server 2008 R2 VM 上,我将 PowerShell 升级到 v3,希望利用Get-ChildItem (gci) 性能改进。此行在 v2 中运行没有错误:

升级到v3后,为什么同一行会出现这个错误?$dir值不变。

gci : 指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。在 line:1 char:11 + $search = gci $dir -recurse -exclude "*.mdf" | 其中 {$_.length -gt 100mb} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ReadError: (\server.domain...DETAILS 1.0.prt:String) [Get-ChildItem], PathTooLongException + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand

应用 Windows 更新并重新启动后没有任何变化。我在升级 PowerShell 之前拍摄了 VM 的快照,因此我可以轻松地来回切换。

$errorActionPreferenceContinuev2 和 v3 中。

$search.count在 v2 和 v3 中都是 8,所以我不太担心丢失的东西,但想了解行为的变化。

我尝试-force在 v2 中添加,看到类似的 PathTooLong 错误,.count为 10。在添加-forcev3 后,.count为 9。然后我恢复到 v2,再次找到 10 个带有-force. 尽管如此,更改数据$dir可能会解释.count差异,但在我们的环境中,更改数据并不能实际解释 v3 中 PathTooLong 错误的一致存在,而 v2 则不然。既然我的好奇心已经战胜了我,我希望有人能对这个谜团有所了解,并让我免于错误处理,我承认,这可能会提供更多线索。

FWIW,TechNet 上的使用文档说它适用于 v2 和 v3。该-Force参数的默认值为 False。

关于 PowerShell 和MAX_PATHv1 的一些背景知识。

Windows Server 2008 R2 VM 上,我将 PowerShell 升级到 v3,希望利用Get-ChildItem (gci) 性能改进。此行在 v2 中运行没有错误:

升级到v3后,为什么同一行会出现这个错误?$dir值不变。

gci : 指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。在 line:1 char:11 + $search = gci $dir -recurse -exclude "*.mdf" | 其中 {$_.length -gt 100mb} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ReadError: (\server.domain...DETAILS 1.0.prt:String) [Get-ChildItem], PathTooLongException + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand

应用 Windows 更新并重新启动后没有任何变化。我在升级 PowerShell 之前拍摄了 VM 的快照,因此我可以轻松地来回切换。

$errorActionPreferenceContinuev2 和 v3 中。

$search.count在 v2 和 v3 中都是 8,所以我不太担心丢失的东西,但想了解行为的变化。

我尝试-force在 v2 中添加,看到类似的 PathTooLong 错误,.count为 10。在添加-forcev3 后,.count为 9。然后我恢复到 v2,再次找到 10 个带有-force. 尽管如此,更改数据$dir可能会解释.count差异,但在我们的环境中,更改数据并不能实际解释 v3 中 PathTooLong 错误的一致存在,而 v2 则不然。既然我的好奇心已经战胜了我,我希望有人能对这个谜团有所了解,并让我免于错误处理,我承认,这可能会提供更多线索。

FWIW,TechNet 上的使用文档说它适用于 v2 和 v3。该-Force参数的默认值为 False。

关于 PowerShell 和MAX_PATHv1 的一些背景知识。

0 投票
1 回答
3337 浏览

powershell - get-childItem 的新-file 参数是像-filter 一样快还是像-include 一样慢?

编辑希望在这里澄清我令人费解和误导性的问题......基于我错误的假设 -file 接受输入。感谢您直截了当地指出这只是一个开关参数;我的示例中的输入实际上被传递给 -path。听起来这可能是搜索多种文件类型的最快的纯 powershell 方法,因为 -filter 只接受单个输入,而 -include 速度较慢。

get-childItem文档说“过滤器比其他参数更有效,因为提供程序在检索对象时应用它们,而不是让 Windows PowerShell 在检索对象后对其进行过滤。”

v3 有一个带有 -file 参数的新参数集,可能是为了排除目录,以匹配 cmd.exe 的dir /a:-d

与 -include 一样,与 -filter 不同,-file 接受多个,如gci -file "*.ldf","*.bak"

所以我想知道,并且迄今为止未能可靠地测试,如果 -file 从性能角度来看就像 -filter,即“更有效”,或者更像是像 -include 这样的“其他参数”。如果 -file 是一个过滤器,那很好,因为 afaict -filter 一次只处理一个过滤器,所以如果您想要多个过滤器(如 *.ldf 和 *.bak),那么您需要运行gci -filter两次或使用 -include 代替。所以我想知道 -file 是否可以让我们为多个过滤器获得过滤器的效率优势。

我偶然发现了一些让我乐观的错误文本。-file 参数希望 -path 成为当前目录,因此gci -path $path -file "*.bak","*.ldf"会出错。Push-location 似乎是一种可行的解决方法,但在这里我对错误文本的内容更感兴趣:

Get-ChildItem:无法将“System.Object[]”转换为参数“Filter”所需的类型“System.String”。不支持指定的方法。

我调用了-file,但错误抱怨“参数'过滤器'”。所以也许 -file 像过滤器一样有效?OTOH,-filter 不需要 -path 是当前目录,因此在这方面 -file 更像 -include。

0 投票
2 回答
6480 浏览

wordpress - 从帖子的图库中获取图像 WordPress 3.5

如何从 WordPress 3.5 中的帖子中的画廊获取图像,因为画廊不再与 3.5 中的帖子相关。get_children() 不起作用,因为画廊不是附件。任何帮助表示赞赏。

0 投票
1 回答
1196 浏览

powershell - Powershell从.txt文件中获取链接,抓取源码,获取字符串,导出到csv

为了,我必须:
1)从 txt 文件中获取所有链接

http://example1.htm
http://example2.htm
http://example3.htm
...

2) 从每个链接获取源代码
3) 从源代码获取我的字符串
4) 将字符串导出到 csv

它适用于一个链接。例子:

, 但我无法通过 txt 文件中的许多链接获得它。我试试看:

我怎么才能得到它?

0 投票
3 回答
7115 浏览

powershell - 比较 2 个文件夹并将路径保存到变量中?

我的任务是比较 2 个文件夹,FolderA 和 FolderB,并注意 A 中存在但 B 中不存在的任何文件。

很抱歉没有完全解释自己。如果我解释一下我们的情况,也许会有所帮助。公司销售人员离开我们公司去竞争对手那里。他的工作笔记本电脑本地硬盘上有文件。我们正在尝试确定他的计算机上是否存在任何文件,但共享网络文件夹中没有。

我需要生成他的笔记本电脑上存在但不在共享网络位置上的所有文件(及其路径)的列表。笔记本电脑本地硬盘和共享网络位置之间的文件结构不同。解决这个问题的最佳方法是什么?

0 投票
4 回答
5652 浏览

powershell - powershell GCI递归跳过文件夹和某些文件类型

目前我正在使用这一行来收集某个路径(及以后)中的所有文件

但是现在我一直要求生成此列表,同时排除(例如)所有“docx”和“xlsx”文件......以及名为“scripts”的文件夹及其内容

我想将这些文件扩展名和目录名从 txt 文件读入一个数组并简单地使用该数组。

速度也很重要,因为我将在这些文件上执行的功能需要足够长的时间,我不需要这个过程减慢我的脚本 10 完整(有点可以)

非常感谢您的任何意见

失败的尝试:

我认为这有效,但仅在 H:\ 驱动器的根目录排除文件夹

0 投票
2 回答
2258 浏览

powershell - 避免在 PowerShell 中递归获取特定文件夹

我有一个包含多个项目的 Visual Studio 解决方案。作为清理的一部分,我使用以下脚本清理了 bin 和 obj 文件夹。

这完美地工作。但是,我有一个基于文件的数据文件夹,其中包含大约 600,000 个子文件夹,位于名为 FILE_DATA 的文件夹中。

上面的脚本需要很长时间,因为它遍历了所有这 600,000 个文件夹。

当我递归遍历并删除 bin 和 obj 文件夹时,我需要避免使用 FILE_DATA 文件夹。

0 投票
5 回答
36490 浏览

powershell - 如何在 PowerShell 的 Get-ChildItem -Exclude cmdlet 中对目录使用通配符

举个简单的例子,假设我有一个文件夹,Root,其中包含三个文件夹;文件夹 1、文件夹 2 和文件夹 3。这些文件夹中的每一个(包括Root)都有一堆文件,包括 .pdb 文件。我想使用PowerShell Get-ChildItem cmdlet返回所有文件夹(包括Root)中的所有文件,但 Folder2 中的 .pdb 文件除外。如果我使用:

然后我取回所有目录中的所有非 .pdb 文件,这与我想要的很接近。所以我假设以下将实现我想要的:

但这并不排除 Folder2(或任何其他文件夹)中的任何 pdb 文件。我已经为-Exclude过滤器尝试了几种变体,例如Folder2\\\*.pdb,但我无法让它工作。事实上,即使使用\*\\\*.pdb似乎也无济于事;没有 .pdb 文件从任何文件夹中排除。

所以似乎通配符不能用于目录,只能用于文件名,但我认为我只是做错了什么。我发现这篇文章解释了通配符和范围运算符,但不幸的是它没有讨论将它们与目录名称一起使用;只有文件名。

0 投票
3 回答
4197 浏览

powershell - Powershell 导出到 CSV

我正在尝试创建一天前的文件的报告,我目前有一个包含文件名和日期的脚本:

以前我将它导出到每个 UNC 路径的文件中,但是现在它已经增长,将导致读取 22 个单独的文件。

我想将其合并到一个 CSV 文件中,该文件可以包含ServerFilename ( $_.Name) 和Date ( $_.CreationTime) 的 coll 。

这超出了我的 Powershell 领域,找不到任何可以真正帮助我的东西。有人可以提供一些帮助吗?