PowerShell: Alle Dateien außer denen in einer Liste löschen

PowerShell: Alle Dateien außer denen in einer Liste löschen

Ziel:
Löschen Sie Audiodateien in einem Ordner, die nicht in der Datei List.txt aufgeführt sind

Lesen der Datei „List.txt“, um sie mit den Dateien im Audioordner zu vergleichen, und Löschen der Dateien, die nicht in der Liste aufgeführt sind.

Inhalt von List.txt:

05 - Earth Wind and Fire - September (The Reflex Revision).mp3
Electric Light Orchestra - Last Train To London (Bootleg Extended Dance Remix).flac
120 - Kool & The Gang - Get Down On It (Soul Funk House Remix).wav
$files = "C:\Users\$env:username\Desktop\Logs_LUFS\List Audio Files for Normalization.txt"
$location = "C:\Users\$env:username\Desktop\LUFS Audios\"

Get-Content $files | % {               
    $result = Get-ChildItem -Recurse "$location*$_*" 
    If(!$result) {
       Remove-Item $location* $result.Fullname
    }
}

Im Befehl „Entfernen“ wird die Meldung angezeigt:
Cannot bind argument to 'Path' parameter because it is null

Wie lautet der Befehl zum Entfernen der Datei aus dem Audioordner, wenn der Wert „ !$Resulttrue“ ist?

Antwort1

PowerShell: Alle Dateien außer denen in einer Liste löschen

Unten sind zwei PowerShell-Varianten aufgeführt, die für diese Aufgabe wie von Ihnen beschrieben funktionieren und die ich meinerseits auf Grundlage der von Ihnen bereitgestellten Details bestätigt habe und die so weit wie möglich emulieren.

PowerShell 1

$files = Get-Content "C:\Users\$env:username\Desktop\Logs_LUFS\List Audio Files for Normalization.txt";
$location = "C:\Users\$env:username\Desktop\LUFS Audios\";
Get-ChildItem -Recurse $location -File -Exclude $files | Remove-Item;

PowerShell 2

$files = Get-Content "C:\Users\$env:username\Desktop\Logs_LUFS\List Audio Files for Normalization.txt";
$location = "C:\Users\$env:username\Desktop\LUFS Audios\";
             
Get-ChildItem -Recurse $location -File | %{
    If($_.Name -notin $files ){ Remove-Item -LiteralPath $_.FullName -Force; };
    };

Unterstützende Ressourcen

verwandte Informationen