bugger
Goto Top

Powershell - Datei prüfen ob vorhanden, dann löschen

Hallo,

ich habe glaube ich eine einfache Frage.
Folgenden Code ausschnitt habe ich:

foreach ($server in $server)
			{
		if ((Test-Path -Path \\$server\$destination\$var))
			{
del \\$server\$destination\$var -Force
			}
del \\$server\$destination\$var1 -Force
del \\$server\$destination\$var2 -Force
del \\$server\$destination\$var3 -Force
del \\$server\$destination\$var4 -Force
del \\$server\$destination\$var5 -Force
del \\$server\$destination2\$var -Force
del \\$server\$destination2\$var1 -Force
del \\$server\$destination2\$var2 -Force
del \\$server\$destination2\$var3 -Force
del \\$server\$destination2\$var4 -Force
del \\$server\$destination2\$var5 -Force
}

Wenn ich jetzt bei jedem $var die Test-Path Zeilen einfüge, würde er genau das machen was er sollte. Ich würde aber gerne wissen, ob es da eine elegantere Methode gibt die dann auch aufgeräumter aussieht, wobei letzteres nicht soo wichtig ist face-smile

Danke und Gruß

Content-Key: 327974

Url: https://administrator.de/contentid/327974

Printed on: April 16, 2024 at 10:04 o'clock

Mitglied: 132272
Solution 132272 Jan 30, 2017 updated at 14:33:42 (UTC)
Goto Top
Pippifax...
$var1,$var2,$var3,$var4 | ?{Test-Path "\\$server\$destination\$_"} | %{del "\\$server\$destination\$_" -Force}  
oder
$var1,$var2,$var3,$var4 | %{del "\\$server\$destination\$_" -Force -EA Ignore}  
Gruß nachfrage
Member: Bugger
Bugger Jan 30, 2017 at 14:45:30 (UTC)
Goto Top
Super, funktioniert einwandfrei. Vielen Dank face-smile

Macht der zweite Code das gleiche wie der erste? Das Test-Path da nicht dabei steht verwirrt mich :D
Member: H41mSh1C0R
Solution H41mSh1C0R Jan 30, 2017 at 14:54:57 (UTC)
Goto Top
Ergebnis ist das gleiche, sprich das Zielverzeichnis wird auch gelöscht. Sollte es nicht da sein wird der Fehler der drauskommt einfach ignoriert "-EA Ignore".
Member: Bugger
Bugger Jan 30, 2017 at 15:00:25 (UTC)
Goto Top
Alles klar, vielen Dank euch beiden face-smile
Member: Bugger
Bugger Feb 01, 2017 at 09:18:23 (UTC)
Goto Top
Ich poste das hier auch mal in der Hoffnung, dass es noch jemand sieht :D

Kann man in einen der beiden Codes auch einen else Befehl mit einbauen?

$var1,$var2,$var3,$var4 | ?{Test-Path "\\$server\$destination\$_"} | %{del "\\$server\$destination\$_" -Force} else {"\\$server\$destination\$_ existiert nicht"}

$var1,$var2,$var3,$var4 | %{del "\\$server\$destination\$_" -Force -EA Ignore} else {"\\$server\$destination\$_ existiert nicht"}

Sowas in der Art nur halt so, dass es auch funktioniert.^^
Mitglied: 132272
132272 Feb 01, 2017 at 09:32:41 (UTC)
Goto Top
Ich poste das hier auch mal in der Hoffnung, dass es noch jemand sieht :D
Wurde dir doch schon per PN beantwortet??!
Member: Bugger
Bugger Feb 01, 2017 at 09:56:46 (UTC)
Goto Top
Komisch, in meinem Posteingang ist irgendwie nichts. Und ich schrieb es hier nochmal, damit es evtl. auch anderen mit der selben Frage hilft.
Mitglied: 132272
Solution 132272 Feb 01, 2017 updated at 09:59:57 (UTC)
Goto Top
$var1,$var2,$var3,$var4 | %{
    $path =  "\\$server\$destination\$_"   
    if(Test-Path $path){
        del $path -Force
    }else{
       write-host "'$path' existiert nicht." -F yellow  
    }
}
Member: Bugger
Bugger Feb 01, 2017 at 10:13:31 (UTC)
Goto Top
Ah, so muss das aussehen.^^ Vielen Dank!