Если я правильно понял вопрос, вы хотите найти файлы, которые НЕ перечислены в текстовом файле
C:\Temp\Powershell Scripts\Missing Files Script\IDS.txt
.
Любой файл, который найден и не указан в этом файле, считается посторонним, и вы хотите, чтобы скрипт создавал (или добавлял) файл результатов, если он обнаружил дополнительные файлы или нет.
В этом случае это должно работать:
$SourcePath = "S:\"
$OutputPath = "C:\Temp\Powershell Scripts\Missing Files Script\Results"
$OutputFile = Join-Path -Path $OutputPath -ChildPath ('{0:yyyy-MM-dd}_Missing_Files_Results.txt' -f (Get-Date))
$ListedFiles = Get-Content 'C:\Temp\Powershell Scripts\Missing Files Script\IDS.txt' | Sort-Object -Unique
# get an array of filenames that are NOT listed in 'C:\Temp\Powershell Scripts\Missing Files Script\IDS.txt'
$files = @(Get-Childitem $SourcePath -File -ErrorAction SilentlyContinue |
Where-Object { $ListedFiles -notcontains $_.Name })
if ($files.Count) {
# we found files that are NOT listed
Write-Host "$($file.Count) Files found that are not listed in '$ListedFiles'"
Add-Content -Path $OutputFile -Value ($files -join [Environment]::NewLine)
}
else {
# no files found
Write-Host "No files found"
Add-Content -Path $OutputFile -Value "No file found."
}
Надеюсь, это поможет