Powershell Master Frage?
Sehr schwere angelegenheit für mich.
In einem Ordner sind .jpg und .png datein.
Ich möchte zuerst eine Liste aller .png datein in einer Variable und dann für jede Datei in der Liste prüfen, ob es eine Datei gibt, welche den selben namen hat, aber halt mit der endung .jpg.
Bekommt das jemand hin?
3 Antworten
Das ist doch fast dasselbe, wie die letzte Frage, wo du die einzelnen .jpgs löschen wolltest.
cd C:\temp\bla # In den Ordner gehen, der durchsucht werden soll
$pngs = dir "*.png" # Alle png-Dateien in die Variable $pngs speichern
$einsamePngs = $pngs |?{!(Test-Path "$($_.BaseName).jpg")} # Alle pngs ohne passende jpg in $einsamePngs speichern
Das ist nicht sonderlich schwer.
Du brauchst get-childitems + die String-Vergleichsoperatoren:
https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-gt-contains-match
Dann machst du eine foreach Schleife und machst da drinnen wieder einen Vergleich - fertig
Könntest du das Skript bei Powershell schreiben und reinschicken ?
Kostet dich zwar etwas Arbeit aber würde mir extrem helfen
Denke die foreach schleife habe ich soweit, aber den anfang verstehe ich nicht ganz
$PngFiles = @(Get-ChildItem -Path 'C:\deinPfad\*.png');
foreach($file in $PngFiles){
$jpgString = -join("C:\deinPfad\",$file.BaseName,".jpg");
if (Test-Path $newStr -PathType leaf)
{
Write-Host 'Datei: '$file.Name'exsistiert auch als jpg.'
}
}
Weiß leider nicht wie ich vorgehen soll :(