У меня есть скрипт, который будет генерировать файл CSV. Цель сценария - проверить, отсутствует ли определенный файл. Например, допустим, у меня есть следующие файлы:
1.jpg
2.jpg
3.jpg
4.jpg
1.gif
3.gif
2.txt
3.txt
Как только скрипт будет запущен, он сгенерирует отчет, чтобы я мог визуально увидеть, какой файл отсутствует. Отчет выглядит так:
JPG Files GIF Files TXT Files
1.jpg 1.gif
2.jpg 2.txt
3.jpg 3.gif 3.txt
Как видите, мне не хватает 1.txt и 2.gif.
Здесь моя проблема ...
Теперь у меня есть ВТОРОЙ файл CSV, в котором есть список файлов, которые ДОЛЖНЫ храниться в ПЕРВОМ CSV. Все, что НЕ находится во ВТОРОМ файле CSV, теперь должно быть удалено из моего FIRST CSV. Например:
Мой ПЕРВЫЙ CSV содержит:
1.jpg
2.jpg
3.jpg
1.gif
3.gif
2.txt
3.txt
ВТОРОЙ CSV говорит, что должны остаться следующие файлы:
1.jpg
3.jpg
1.gif
2.txt
Следовательно, все, что не отображается в файле SECOND CSV, необходимо удалить из FIRST CSV, сохранив тот же формат, что означает, что если 1.jpg отсутствует (он все еще указан в файле SECOND CSV, но существует в папке C: \ JPG) в ПЕРВОМ CSV должно быть пустое пространство.
Надеюсь, это имеет смысл. Пожалуйста, спросите меня, если у вас есть какие-либо вопросы или вам нужны разъяснения.
Ниже приведен фрагмент кода из моего скрипта, который генерирует FIRST CSV:
# Get dirs
$dirJPG = "C:\JPG"
$dirGIF = "C:\GIF"
$dirTXT = "C:\TXT"
$files = @()
$files += Get-ChildItem -Path $dirBGR -Filter "*.jpg"
$files += Get-ChildItem -Path $dirMI -Filter "*.gif"
$files += Get-ChildItem -Path $dirW3F -Filter "*.txt"
# Write a datetime stamped CSV file
$datetime = Get-Date -Format "MM_dd_yyyy_hhmm"
$files | Sort-Object -Property { $_.Name } | Group-Object -Property {
[System.IO.Path]::GetFileNameWithoutExtension($_.Name) } | % {
New-Object psobject -Property @{
"JPG" Files" = $_.Group | ? { $_.Extension -eq ".jpg" } | % { $_.Name }
"GIF Files" = $_.Group | ? { $_.Extension -eq ".gif" } | % { $_.Name }
"TXT Files" = $_.Group | ? { $_.Extension -eq ".txt" } | % { $_.Name }
} } | Export-Csv -Path "$datetime.csv" -NoTypeInformation
Заранее спасибо за вашу помощь! : D