mrniceg
Goto Top

Bereinigung von Dateien die nicht mehr in einer Excel Datei aufgeführt sind

Ich habe ein kleines Problem und betsimmt hat einer scho etwas fertiges in der Schublade, das er mir zur Verfügung stellen kann.

Ich habe eine Excel Datei in der in der Spalte c Dateinamen stehen. in einem Ordner c:\temp sind die dazugehörigen Dateien.
Mit einem Script möchte ich alle Dateien löschen, die nicht mehr in der Excel aufgeführt sind.

Kann mir einer hierbei helfen ?

Vielen Dank

Content-ID: 73489983378

Url: https://administrator.de/forum/bereinigung-von-dateien-die-nicht-mehr-in-einer-excel-datei-aufgefuehrt-sind-73489983378.html

Ausgedruckt am: 22.12.2024 um 06:12 Uhr

CamelCase
Lösung CamelCase 28.05.2024 aktualisiert um 13:17:00 Uhr
Goto Top
Moin,

# Pfad zur Excel-Datei und zum Ordner
$excelFilePath = "C:\tmp\test.xlsx"   
$folderPath = "C:\tmp\temp"  

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open($excelFilePath)
$worksheet = $workbook.Sheets.Item(1)

$usedRange = $worksheet.UsedRange
$fileNames = @()
for ($row = 1; $row -le $usedRange.Rows.Count; $row++) {
    $fileName = $worksheet.Cells.Item($row, 3).Text
    if ($fileName) {
        $fileNames += $fileName
    }
}

$workbook.Close()
$excel.Quit()

$allFiles = Get-ChildItem -Path $folderPath -File
foreach ($file in $allFiles) {
    if ($fileNames -notcontains $file.Name) {
        Remove-Item -Path $file.FullName -Force
    }
}

(löscht ohne Bestätigung - vorher testen!)
mrniceg
Lösung mrniceg 28.05.2024 um 17:02:48 Uhr
Goto Top
Funktioniert perfekt, vielen Dank !!!