从powershell Get-ChildItem结果中排除文件

问题描述 投票:0回答:1

要从目录中选择每个AssemblyInfo.cs减去一个,我运行一个powershell脚本:

Clear-Host
$SrcDir = "D:\Projects\Lambda\Sources"
Write-Host $SrcDir
cd $SrcDir
$ExcludeXYZCallStrategy = $SrcDir + "\Lambda.XYZ\XYZCallStrategy\Properties\AssemblyInfo.cs"
# 2. Select Files to be updated
Write-Host $ExcludeXYZCallStrategy
# both these syntaxes fail (tried one after the other not together ofc) :
$Assemblyfiles = Get-ChildItem -Path $SrcDir -Recurse -Include AssemblyInfo.cs -Exclude $ExcludeXYZCallStrategy
$Assemblyfiles = Get-ChildItem -Path $SrcDir -Recurse -Include AssemblyInfo.cs -Exclude D:\Projects\Lambda\Sources\Lambda.XYZ\XYZCallStrategy\Properties\AssemblyInfo.cs
Write-Host $Assemblyfiles
Write-Host "Files Count : " $Assemblyfiles.count

我尝试了不同的语法来强制Get-ChildItem排除那个文件,但我失败了。

我尝试了这些这些答案无济于事:

doc,我发现没有什么可以解释为什么不排除该文件。

powershell get-childitem
1个回答
3
投票

由于它只有一个文件,你可以使用Where-Object

$Assemblyfiles = Get-ChildItem -Path $SrcDir -Recurse -Include AssemblyInfo.cs | Where-Object { $_.FullName -ne "D:\Projects\Lambda\Sources\Lambda.XYZ\XYZCallStrategy\Properties\AssemblyInfo.cs" }
© www.soinside.com 2019 - 2024. All rights reserved.