Source löschen wenn Datei im Zielordner vorhanden
Hallo liebe Programmierer 
ich habe ein kleines problem zu lösen. Und zwar habe ich einen Ordner A und einen Ordner B. Das Script soll schauen(anhand Dateinamen) ob die Datei in ordner B existiert, wenn ja dann soll die Datei in ordner A gelöscht werden. irgendwelche Sync befehle klappen leider nicht da ja in dem Fall dann immer die Datei in B gelöscht wird. Das ganze soll NUR mit Dateien funktionieren aber in ALLEN unterordnern.
ich habe es schon selber probiert indem ich mit DIR zwei txt Dateien erzeuge mit den Pfaden der Dateien und diese beiden txt dateien dann in powershell nutze zum vergleichen aber irgendwie löscht er trotzdem A wenn die Datei in B nicht vorhaden ist:
es geht sicherlich auch einfacher als ich es versuche xD
ich habe ein kleines problem zu lösen. Und zwar habe ich einen Ordner A und einen Ordner B. Das Script soll schauen(anhand Dateinamen) ob die Datei in ordner B existiert, wenn ja dann soll die Datei in ordner A gelöscht werden. irgendwelche Sync befehle klappen leider nicht da ja in dem Fall dann immer die Datei in B gelöscht wird. Das ganze soll NUR mit Dateien funktionieren aber in ALLEN unterordnern.
ich habe es schon selber probiert indem ich mit DIR zwei txt Dateien erzeuge mit den Pfaden der Dateien und diese beiden txt dateien dann in powershell nutze zum vergleichen aber irgendwie löscht er trotzdem A wenn die Datei in B nicht vorhaden ist:
$File2 = "C:\txt_2.txt"
while($File2.Length -ne 0){
$File = "C:\txt_1.txt"
$File2 = "C:\txt_2.txt"
$testpath = (Get-Content $File | Select-Object -First 1)
$testpath2 = (Get-Content $File2 | Select-Object -First 1)
If (Test-Path $testpath2){
Remove-Item $testpath
}
(Get-Content $File | Select-Object -Skip 1) | Set-Content $File
(Get-Content $File2 | Select-Object -Skip 1) | Set-Content $File2
$File2 = "C:\txt_2.txt"
}
es geht sicherlich auch einfacher als ich es versuche xD
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 317882
Url: https://administrator.de/forum/source-loeschen-wenn-datei-im-zielordner-vorhanden-317882.html
Ausgedruckt am: 21.02.2025 um 13:02 Uhr
1 Kommentar

Compare-Object ist dein Freund!
Gruß R.
$source1 = gci "D:\Ordner1" -File -Recurse
$source2 = gci "D:\Ordner2" -File -Recurse
compare $source1 $source2 -Property Name -IncludeEqual -ExcludeDifferent -PassThru | remove-item -Force
Gruß R.