Powershell 返回除.txt以外的所有文件
我想要所有文件,除了以.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" 或: 如果您坚持使用
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; }