Powershell 返回除.txt以外的所有文件

Powershell 返回除.txt以外的所有文件,powershell,foreach,where,Powershell,Foreach,Where,我想要所有文件,除了以.txt结尾的文件 foreach ($file in Get-ChildItem $Out | Where $file.Extension -ne .txt) { Write-Host $file.name } 这将列出目录中的所有项目,包括.txt 这到底应该是什么样子?无需循环即可: Get-ChildItem | Where-Object { $_.Extension -ne ".txt" } Select-Object "Name" 或: 如果您坚持使用

我想要所有文件,除了以.txt结尾的文件

foreach ($file in Get-ChildItem $Out | Where $file.Extension -ne .txt) {

Write-Host $file.name

}
这将列出目录中的所有项目,包括.txt


这到底应该是什么样子?

无需循环即可:

Get-ChildItem | Where-Object { $_.Extension -ne ".txt" } Select-Object "Name"
或:


如果您坚持使用循环,或者出于某种目的需要它,您可以:

foreach ($file in Get-ChildItem -Exclude "*.txt") { Write-Host $file.Name; }


问题中的示例不起作用,因为
$file
仅在
foreach

中可用,这是哪种语言?某种shell脚本?您应该将其添加到问题中,并可能相应地标记它。谢谢。它起作用了。但是你知道为什么我的代码不起作用吗?如果你使用
Where
,你需要把你的条件写得稍微不同。检查所有选项。@user3019059您的选项不起作用,因为在大括号内的foreach代码块
{}
之前,
$file
不存在。在此之前,在foreach迭代位中不能使用
$file.Extension
。它必须是
foreach($file-in(Get-ChildItem$Out | Where-Extension-ne.txt')){…}
foreach ($file in Get-ChildItem -Exclude "*.txt") { Write-Host $file.Name; }
foreach ($file in Get-ChildItem | Where-Object { $_.Extension -ne ".txt" }) { Write-Host $file.Name; }
foreach ($file in Get-ChildItem | Where-Object Extension -ne ".txt") { Write-Host $file.Name; }