PowerShell-Skript zum löschen von Dateien und Ordner, die von bestimmten Kriterien
Ich versuche ein Skript schreiben, dass die Suche für:
- Ordner mit bestimmten Namen.
- Dateien mit bestimmten Erweiterungen, während
- Ohne bestimmten Verzeichnisse aus der Suche.
Sobald die Suche ausgeführt wird, möchte ich alle die 1s-und 2s gelöscht werden, sowie die übergeordneten Ordner, wenn Sie nicht übereinstimmen 3. Hier ist, was ich habe, so weit:
#Define list of computers to search for the files and folders in question
$ComputerList = Get-Content -Path "C:\computers.txt"
#Define a function for searching files and folders based on criteria:
function search {
PROCESS {
$srcFolder ="C:\test"
Get-ChildItem $srcFolder -ErrorAction SilentlyContinue -recurse -Force | Where-Object {`
$_.Name -eq “keyword1” -or`
$_.Name -eq “keyword2” -or`
-and $_.fullname -notmatch 'C:\\Windows'`
-and $_.fullname -notmatch 'C:\\Program Files'
} | foreach-object -process { _.FullName }
}
}
foreach ($strComputer in $ComputerList)
{
#Perform the search function on all the computers listed
foreach ($objItem in $colItems)
{
write-host "-------------------------$strComputer ----------------" -foregroundcolor "red"
write-host " Files Found " -foregroundcolor "yellow" -backgroundcolor "black"
$ComputerList | search
"Number of files and folders found: " +($ComputerList | search | Measure-Object | Select-Object -ExpandProperty Count)
write-host "------------------------------------------------------------------" -foregroundcolor "red"
}
if (($ComputerList | search).count -lt 1) {
write-host "No files found to delete"
}
else {
#Prompt if you want to delete the files
write-host "Do you want to delete these files?" -foregroundcolor "yellow" -backgroundcolor "black"
$ComputerList | search | Remove-Item -Force -confirm
}
}
Out-File -FilePath C:\results.txt
Also hier sind die Fragen, die ich habe:
-
Ich kann das Skript zu arbeiten. Allerdings bin ich mir nicht sicher, wie man das löschen der übergeordneten Ordner und schützt die diejenigen ausgeschlossen.
-
Die Ausgabe in die Datei funktioniert nicht. Die Datei wird erstellt, aber es ist leer. Warum?
Nach einem Blick auf Get-ChildItem | Get-Member
erkannte ich, dass Sie die Parent-Eigenschaft angegeben ist, die durch das System.IO.DirectoryInfo Eltern, also, wenn ich kann hinzufügen, dass die Liste der Elemente, die gelöscht werden, dann sollte es funktionieren.
Die Ordnerstruktur ist weiter unten. Zu wiederholen, in einem vielleicht klarer, ich möchte einen Ordner löschen:
- Deren name oder Inhalt entspricht keyword(s)
- Wenn der Inhalt entspricht keyword(s), aber einen Namen für den Ordner nicht > überprüfen, um zu sehen, ob es ist explizit ausgeschlossen, z.B. C:\Windows, C:\Program Dateien etc. > Wenn es ist, lassen Sie allein. Wenn es nicht ist, löschen Sie den Ordner.**
Hier sind die einfachen URLs:
oi42.tinypic.com/2nulmz4.jpg
oi43.tinypic.com/fwlxd0.jpg
oi42.tinypic.com/315hdw9.jpg
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es einfach halten:
Wie Sie sehen können können Sie definieren, welche Ordner, die Sie brauchen, um im Voraus ausschließen-und dann Sortieren Sie alle Ihre Artikel, filtern von Verzeichnissen, die gehalten werden soll. Können Sie dann ausschließen, auch einige Wege, oder Erweiterungen mit Remove-Item: