DaniW 0 Geschrieben 14. Mai 2020 Melden Teilen Geschrieben 14. Mai 2020 Hallo Ich suche ein Script womit man aus einem Laufwerk alle Verzeichnisse löschen kann ausser Verzeichnisse welche mit _ anfangen. Gibt's bestimmt schon oder sehr ähnlich. Hab schon verschiedene Sachen versucht. Funzt leider nicht so wie ich das gerne hätte. Vielen Dank Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 14. Mai 2020 Melden Teilen Geschrieben 14. Mai 2020 Hi, ich würde "wsh" vorne um ein "Po" in der Mitte um "er" und am Ende mit "ell" zu PowerShell ergänzen. ;) Dann wäre "Get-ChildItem" und "Remove-Item" ein Ansatz. Wichtig wäre nur die Frage, was ist mit Verzeichnissen, die nicht mit "_" anfangen in denen aber Unterverzeichnisse mit "_" am Anfang sind? Gruß Jan 1 Zitieren Link zu diesem Kommentar
DaniW 0 Geschrieben 15. Mai 2020 Autor Melden Teilen Geschrieben 15. Mai 2020 Hi Danke Jan für die Antwort Ja das wäre eine Variante welche ich noch prüfen werde. Vorläufig möchte es aber mit WSH machen. Es geht nur um das oberste Level. Was danach kommt spielt keine Rolle. Das soll dann einfach weggeputzt werden. Gruss Dani Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 Ich gehe davon aus, dass du alleine für Get-ChildItem | where { -not $_.Name.StartsWith("_") } etwas mehr an Code in wsh benötigst. Den Part mit "Remove-Item" kriegst du sicherlich alleine "drangedengelt". Um auf Nummer Sicher zu gehen könntest du ans "Remove-Item" noch ein "-WhatIf" anhängen. 1 Zitieren Link zu diesem Kommentar
DaniW 0 Geschrieben 15. Mai 2020 Autor Melden Teilen Geschrieben 15. Mai 2020 Vielen Dank Jan Ich hoffe ja noch, dass mir da einer mit wsh weiterhelfen kann. Folgendes habe ich mal gefunden und weiter zusammengestiefelt. Jetzt muss ich nur noch die Verzeichnisse im Root welche mit _ beginnen nicht löschen. Aber wie? strRootFolder = "C:\Temp\Leermachen" Set fso = CreateObject("Scripting.FileSystemObject") Set objFS = CreateObject("Scripting.FilesystemObject") Set ofolder = fso.GetFolder(strRootFolder) ' Files im Rootverz löschen fso.DeleteFile "c:\Temp\Leermachen\*.*", true 'Durchlaufe alle Unterverzeichnisse for each folder in ofolder.subfolders KillFolderSub folder next Sub KillfolderSub(objFolder) 'Durchlaufe alle Unterverzeichnisse for each subfolder in objfolder.subfolders KillFolderSub subfolder next 'Alle Dateien im Ordner löschen for each file in objfolder.Files fso.DeleteFile(file.Path) next 'Ordner löschen fso.DeleteFolder(objFolder.Path) End Sub msgbox "feddich" Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 Moin, warum erzeugst du dir zwei FSO-Objekte? Falls du im WSH-Scripting nicht firm bist, ist das Löschen von Daten vielleicht nicht der beste Einstieg ... Wir werden dir hier kein Skript schreiben, aber wenn du uns mal sagst, was denn das eigentliche Ziel ist, können wir dir vielleicht besser den Weg weisen. Gruß, Nils Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 vor 2 Stunden schrieb DaniW: Vorläufig möchte es aber mit WSH machen. Ich bin neugierig - warum soll es denn unbedingt WSH sein, wenn ich fragen darf? Zitieren Link zu diesem Kommentar
DaniW 0 Geschrieben 15. Mai 2020 Autor Melden Teilen Geschrieben 15. Mai 2020 Hi Nils Learning by doing würde ich mal sagen. Ich erwarte auch nicht, dass mir hier ein Script geschrieben wird. Sonst hätte ich gewartet bis hier was reinschneit. Ziel: "Jetzt muss ich nur noch die Verzeichnisse im Root welche mit _ beginnen stehen lassen (nicht löschen). Aber wie? " Bsp: c:\temp\Leermachen\_Test1 (stehen lassen) c:\temp\Leermachen\_Test2 (stehen lassen) c:\temp\Leermachen\Test (löschen) c:\temp\Leermachen\Test99 (löschen) Evtl. ist ja case ein Ansatz? Gruss Dani Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 Moin, mit "Ziel" meine ich nicht, dass du deine Frage einfach wiederholst. Ich kann im Browser scrollen. Was steckt dahinter? Warum soll gelöscht werden, warum sollen bestimmte Verzeichnisse stehen bleiben? Dein Beispielcode löscht auch Dateien, ist das Teil der Aufgabe? Vielleicht (bzw. wahrscheinlich) gibt es andere Wege, das Ziel zu erreichen. Dafür aber muss man das Ziel kennen. Gruß, Nils Zitieren Link zu diesem Kommentar
DaniW 0 Geschrieben 15. Mai 2020 Autor Melden Teilen Geschrieben 15. Mai 2020 Nils wenn du im Browser scrollen kannst dann musst du es einfach nur noch lesen. Aber trotzdem Danke für deine Bereitschaft. Jan hats verstanden vielen Dank dafür. Falls es jemand anders einfach mit PS machen möchte dann geht das auch so. Get-ChildItem -Path C:\temp\leermachen -Exclude "_*" | Remove-Item Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 Sagst Du uns vielleicht trotzdem noch, warum es unbedingt WSH sein soll? Ich würde es gern verstehen. 1 Zitieren Link zu diesem Kommentar
Dr.Melzer 191 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 vor 2 Stunden schrieb DaniW: Nils wenn du im Browser scrollen kannst dann musst du es einfach nur noch lesen. Aber trotzdem Danke für deine Bereitschaft. Werter Dani, wir sind hier einen freundlichen und wertschätzenden Umgang miteinander gewohnt. Daher bitte ich dich darum zukünftig auf solche nicht zielführende (durchaus als unverschämt wahrzunehmende) Kommentare zu verzichten. Ich an deiner Stelle würde immer im Hinterkopf behalten, dass ich derjenige bin der Hilfe sucht und dabei gut überlegen ob es zielführend ist, denjenigen die mir helten können ans Bein zu pinkeln... Vielen dank für dein Verständnis. Zitieren Link zu diesem Kommentar
DaniW 0 Geschrieben 15. Mai 2020 Autor Melden Teilen Geschrieben 15. Mai 2020 Lieber Dr. Melzer Als unverschämt?? Naja das hinkt dann doch etwas :). Auch ich schätze einen freundlichen und wertschätzenden Umgang. Ich habe durchaus Verständnis dafür, dass man nicht jedes Anliegen versteht oder gar bearbeiten möchte. Muss man ja auch nicht ich zahle ja auch nicht dafür also habe ich auch keinen Qualitätsanspruch. Aber da du schon fragst, wenn ich eine Aufgabe 3 mal möglichst einfach beschreibe. Tut mir leid mein Fehler aber einfacher kann ich es nicht aufmahlen. Dann geht es nicht darum, was ich warum löschen möchte, sondern einfach dass ich was löschen möchte. und zwar am liebsten mit wsh. Man kann mich gerne auch auf andere Tools hinweisen. Kein Problem das hat Jan gemacht und hat sogar noch Codeschnipsel geliefert. War zwar nicht die Frage aber trotzdem vielen Dank dafür. Mir stattdessen gesagt wird, dass hier keiner für mich code erzeugt, (ok, hab ich gar nicht erwartet) hab ja noch was gepostet) oder wenn ich nicht firm mit wsh bin es lieber sein lassen soll. (ok, wenn ich firm damit wäre hätte ich wohl kaum diese Frage gestellt?) Dann frage ich mich schon was soll das? Das ist das schlicht für niemanden zielführend. Gut war ein Hinweis nehme ich gerne so zur Kenntnis. Erwartet hätte ich ein Codeschnipsel mach es doch mit case oder so ähnlich --> fertig Für mich ist die Sache erledigt. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 15. Mai 2020 Melden Teilen Geschrieben 15. Mai 2020 Jetzt werde ich aber doch unsicher. Siehst Du eigentlich meine Beiträge, oder werden die irgendwie geblockt? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.