- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
How to select files that have no extension using powershell
(3 个回答)
3年前关闭。
我想获取没有文件扩展名的文件列表。考虑我的目录的内容是:
folder
file1
file2.mp4
file1
只要。
Get-ChildItem -Exclude *.* -File
什么也没回。
Get-ChildItem -Exclude *.*
返回
folder
和
file1
.
Get-ChildItem -File
返回
file1
和
file2.mp4
.
file1
?
最佳答案
在 PSv3+ ,但是 在 PowerShell Core v6.x 中不起作用,已在 v7 中修复 (见 this GitHub issue):
Get-ChildItem -File -Filter *.
-File
将输出限制为仅文件(而不是目录)。 -Filter *.
只选择那些没有扩展名的文件。 -Filter
通常优于
-Include
/
-Exclude
出于性能原因,因为它在源头进行过滤,而不是返回所有对象并让 PowerShell 进行过滤。
-File
开关不可用,您需要额外的
Where-Object
调用将结果限制为文件,如
TheIncorrigible1指出:
Get-ChildItem -Filter *. | Where-Object { -not $_.PSIsContainer }
Get-ChildItem -File | Where-Object -Not Extension
-Filter
参数由底层提供程序处理,而不是由 PowerShell , 意味着它的行为可能与 PowerShell 不同,这里确实是这种情况:文件系统提供程序使用
Windows API 的通配符-表达式匹配,它的功能比 PowerShell 少,还有一些历史怪癖 ;此外,它仅限于单个通配符表达式,而
-Include
/
-Exclude
支持多个(以
,
分隔)。
-Filter
提供 PowerShell 的通配符匹配没有的东西:使用
*.
匹配没有扩展名的文件/目录。
-Include
/-Exclude
通常以牺牲性能为代价提供功能优势,但它们有自己的局限性和怪癖 :
*.
不支持匹配 PowerShell's wildcard language 中没有扩展名的项目,并且我所知道的没有基于通配符的方法来实现这一点。 -Include
/-Exclude
对指定或隐含路径的最后一个组件进行操作,因此如果您隐式定位当前目录,则它们适用于该目录路径,而不适用于其中的单个文件。-Recurse
改变它,但搜索整个目录子树。 -Depth 0
限制与直接子项的匹配,同时仍然能够应用 -Include
/-Exclude
,这在 Windows PowerShell v5.1 中已被破坏:-Depth
在这种情况下,将忽略参数。-Include
/
-Exclude
这里不提供解决方案。
关于powershell - 如何使用 Get-ChildItem 返回没有扩展名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51718098/
我尝试了一些选项来迭代我的目录并在以下命令之间获得巨大的性能差异: 慢: Get-ChildItem -Directory -Force -Recurse -Depth 3 -Include '$tf
我今天才刚刚开始使用PowerShell,并且我有一个意向列表文件,其中包含数组中的一些模式,例如: $matchPattern = ( "SomeCompany.
我制作的 powershell 脚本有问题。该脚本的目的是从各种资源、CMDB og 和其他系统收集信息,并将它们收集在一个组合报告中并发送。 除了一个一直困扰我的提示外,我的一切工作正常。在我的脚本
我编写了一个脚本,用于从服务器归档日志文件。除了 Get-ChildItem 的递归性与否,我的一切都很好...... 我似乎遇到的问题是,当 Get-ChildItem 不是递归的并且 -Inclu
使用PowerShell 4.0, 我试图获取多个目录的大小,并且在Windows告诉我的内容和我的代码告诉我的内容之间却得到非常不一致的结果。 有问题的代码是: $temp4 = ($folderI
我正在使用Powershell脚本删除文件夹中的某些文件,然后将其余文件移到预定义的子文件夹中。 我的结构看起来像这样 Main (Contains a bunch of pdb and dl
我试图获取特定子文件夹结构中文件的递归列表,然后将它们保存到表中,以便可以使用foreach循环处理每一行。我有以下代码: $table = get-childitem -recurse | wher
大家好,我的文件夹结构如下 D:\Exclude Include Include1 Exclude Include 我需要的是我想过滤目录 In
我在 d: 下有 3 个 ps1 文件 -a--- 6/19/2015 2:52 PM 104 Untitled1.ps1
我们生成名称中带有日期的文件。(* 下面是日期的通配符)我想获取最后一个文件,并且包含该文件的文件夹的标题中也有一个日期(仅月份)。 我正在使用 PowerShell,并安排它每天运行。这是到目前为止
我要申请多个filter在 PowerShell 脚本中,截至目前我只能添加单个 filter像下面 Get-Childitem "D:\SourceFolder" -recurse -filter
我正在尝试使用CreationTime命令获取Lastwritetime和get-childitem,并将其与相同的汇编时间进行比较,以检查每5分钟是否有任何差异。 奇怪的是,如果程序集没有更改,并且
我写了一个Powershell脚本来检查文件夹的内容,以及是否有LastWriteTime早于20分钟的文件通知我。我遇到的问题是,当我得到结果时,它包括电子邮件正文中的所有文件。我将如何编写该信息以
这个问题在这里已经有了答案: PowerShell output is crossing between functions (1 个回答) 2年前关闭。 Powershell 版本信息如下: Nam
再次尝试使用 PowerShell 删除文件。 我现在正在尝试删除以“Export_”开头的文件,然后是两位数的年份,然后是儒略日期。例如,今天是 Export_18309。 18309 之后还有其他
我有两种使用通配符模式获取文件的方式: Get-ChildItem "$ActivityLogDirectory/*.csv" 和 Get-ChildItem "$ActivityLogDirecto
平台上的第一篇文章;-) 场景:我有一个根文件夹,其中包含带有安装相关文件的子文件夹。一些子文件夹包含更多子文件夹和更多文件,子子文件夹。根文件夹下的每个子文件夹或其子文件夹都必须包含一个特定文件。
我的问题与元过滤器上发布的问题几乎相同。 我需要使用 PowerShell 脚本来扫描大量文件。问题在于“Get-ChildItem”函数似乎坚持将整个文件夹和文件结构插入内存中。由于驱动器在 30,
我目前正在编写一个可视化错误 GUI,它可以在处理时捕获任何异常,并为用户提供“易于理解”的错误消息。但似乎在使用 Get-ChildItem 时我无法捕获任何异常小命令。我是否必须使用与 try/c
我正在编写一个遍历目录并复制其中的每个文件和文件夹的递归函数。我在函数中进行的第一项检查是查看传入的路径是否有子级。为了找出答案,我使用以下方法: [array]$arrExclude = @("Ex
我是一名优秀的程序员,十分优秀!