Файлы соответствия Get-Content - PullRequest
0 голосов
/ 08 марта 2019

Я хочу прочитать в текстовом файле и сопоставить данные содержимого в текстовом файле с именем файла, а затем записать вывод. Это то, что у меня пока и не работает:

$Source = "S:\*.*"
$Missing_Files = "C:\Temp\Powershell Scripts\Missing Files Script\Results\"

foreach ($ID in Get-Content 'C:\Temp\Powershell Scripts\Missing Files 
Script\IDS.txt') {
$ID
$Count = 0
Get-Childitem $Source -ErrorAction SilentlyContinue | where {$_.name - 
notmatch $ID} | foreach {
}
if ($Count -eq 0) {
    Write-Host $_.name "No File Found"
    Write-Output $ID "No File Found" | Out-File $Missing_Files\$(Get-Date -f 
yyyy-MM-dd)_Missing_Files_Results.txt -append
    }
}

1 Ответ

0 голосов
/ 08 марта 2019

Если я правильно понял вопрос, вы хотите найти файлы, которые НЕ перечислены в текстовом файле
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."
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...