Powershell "Löschscript" (Unterordner)

luckysh0t

Commander
Registriert
Nov. 2007
Beiträge
2.479
Hallo zusammen,

ich habe mir in der Powershellumgebung ein Löschscript geschrieben das so ausschaut :


Code:
$pfad = Read-Host "Bitte das Quellverzeichnis eingeben"
$dateiname =Read-Host "Bitte Dateiname eingeben zb: *sample.*"

Remove-Item  "$Pfad\$Dateiname"

Ziel ist es Dateien zu löschen die einen bestimmten Namen etc. beinhalten, unabhängig von Dateityp etc.
Das Script funktioniert auch ganz gut, nur wird der Inhalt von Unterordnern nicht mit einbezogen.
Dafür müsste ja der Befehl
Code:
Get-ChildItem -recurse
zuständig sein, nur habe ich keine Ahnung an welcher stelle der muss. Hab schon verschiedene Stellen ausprobiert aber es klappt nicht..vlt hab ich auch was vergessen ?

Ich hoffe Ihr könnt mir helfen.

MfG

Lucky
 
-recurse gibts auch.
Code:
NAME
    Remove-Item
    
SYNTAX
    Remove-Item [-Path] <string[]> [-Filter <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Force] 
    [-Credential <pscredential>] [-WhatIf] [-Confirm] [-UseTransaction] [-Stream <string[]>]  [<CommonParameters>]
    
    Remove-Item -LiteralPath <string[]> [-Filter <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] 
    [-Force] [-Credential <pscredential>] [-WhatIf] [-Confirm] [-UseTransaction] [-Stream <string[]>]  
    [<CommonParameters>]
    

ALIASE
    ri
    rm
    rmdir
    del
    erase
    rd
    

HINWEISE
    Die Hilfedateien für dieses Cmdlet können von "Get-Help" auf diesem Computer nicht gefunden werden. Es wird nur 
    ein Teil der Hilfe angezeigt.
        -- Sie können die Hilfedateien für das Modul, das dieses Cmdlet enthält, herunterladen und installieren, indem 
    Sie "Update-Help" verwenden.
        -- Wenn Sie das Hilfethema für dieses Cmdlet online anzeigen möchten, geben Sie Folgendes ein: "Get-Help 
    Remove-Item -Online", oder 
           gehen Sie zu "http://go.microsoft.com/fwlink/?LinkID=113373".
 
Weil es den Befehl "Delete" nicht mehr in der Powershell gibt, wurde durch "Remove-Item" ersetzt, nur finde
ich dafür nicht die passenden Parameter. bzw ist das "-recurse" nur funktioniert das irgendwie nicht..
 
Zuletzt bearbeitet:
"delete" gibt es nicht und gab es nie. Es heißt "del". Sieh dir mal die Alias Sektion an. Er meint wahrscheinlich auch einfach ein simples Batch-Script, was del /S *abc* aufruft.
 
Das es mit einer Batch klappt ist mir bekannt, nur will ich eine Pfad und Namenabfrage im Script haben und dazu habe ich nichts gefunden wie ich das via CMD realisieren soll.
 
Code:
set /P quelle=Bitte das Quellverzeichnis eingeben: 
set /P maske=Bitte Dateiname eingeben zb: *sample.*: 

del /S "%quelle%\%maske%"
Noch etwas Fehlerbehandlung dann passt es.
 
Code:
$pfad = Read-Host "Bitte das Quellverzeichnis eingeben"
$dateiname =Read-Host "Bitte Dateiname eingeben zb: *sample.*"
     
Remove-Item "$Pfad\$Dateiname"

Dir fehlt da etwa folgendes:

Code:
Remove-ChildItem -recurse | where $_.Name -eq $dateiname
 
Vielen Dank.
 
Ich würde es so versuchen:

Code:
Get-ChildItem $pfad -Recurse | Where-Object {$_.Name -like "*$dateiname*"}
 
Zurück
Oben