Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Alle (Unter-)Unterordner per Batch in darüberliegendes Verzeichnis verschieben

Mitglied: Larz
Hallo zusammen,

Ausgangssituation:
ich habe einen PC mit einer Verzeichnisstruktur die für Windows zu lange ist.

Resultat:
Ordner können nicht mehr gelöscht werden, obwohl keine Dateien und voller Zugriffsrechte vorhanden sind.

Bisherige Versuche:
Durch Recherche im Netz habe ich erfahren dass man die Ordner zumindest noch verschieben kann, also vom Unterordner in den Hauptordner (und das über ca. 20 - 25 Ebenen).
Danach ist ein Löschen möglich. Ich wollte nun mit dem Move-Befehl die Verzeichnisse verschieben, aber das scheint ja nur mit Dateien zu funktionieren...
Weiß jemand wie das mit den (Unter-(Unter-(Unter-(usw.))))Unterordnern geht?


Gruß
Larz

Content-Key: 100800

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

Ausgedruckt am: 25.07.2021 um 00:07 Uhr

Mitglied: bastla
bastla 02.11.2008 um 10:25:16 Uhr
Goto Top
Hallo Larz!

Sollte eigentlich so gehen:
Ansonsten sollte der Zugriff auf die tiefer liegenden Ordner aber auch klappen, wenn Du den "Weg" mit
verkürzt (anstelle von "K" tut es natürlich jeder freie Laufwerksbuchstabe).

Mit
gibst Du den Buchstaben "K" wieder frei.

Grüße
bastla

[Edit] Pfadangabe bei "subst" korrigiert. [/Edit]
Mitglied: Larz
Larz 02.11.2008 um 10:42:56 Uhr
Goto Top
Moin Bastla,

danke für die schnelle Antwort. Problem ist nur, dass dein Script die Ordner zwar alle verschiebt, aber in der bestehenden Ordnerstruktur belässt, d.h. wieder zu lange Verzeichnispfade abbildet; d.h. ich kann die leeren Verzeichnisse wieder nicht löschen :-) face-smile

Im Prinzip müsste es so eine Art Schleife sein, die vom untersten Ordner aus alles ins obertse Verzecihnis verschiebt...


Gruß
Larz
Mitglied: bastla
bastla 02.11.2008 um 10:51:29 Uhr
Goto Top
Hallo Larz!
... zwar alle verschiebt, aber in der bestehenden Ordnerstruktur belässt ...
... was ich ja grundsätzlich sinnvoll finde ...

Eigentlich sollte es doch genügen, wenn Du den Großteil des Pfades (durch Angabe als %Quelle%) entfernst (wodurch, in meinem Beispiel oben, aus "D:\Dein\langer\Pfad\zu\den\Unterordnern\EinUnterordner" dann eben "D:\KurzerPfad\EinUnterordner" und damit wieder vernünftig handhabbar wird) - oder verstehe ich da etwas gründlich falsch?

Grüße
bastla
Mitglied: 60730
60730 02.11.2008 um 10:52:32 Uhr
Goto Top
Moinsen larz,

an deiner Stelle würde ich den 2. Ansatz von Bastla weiterverfolgen.

Woher soll das Script "wissen" welcher Ordner gerade noch zu erkennen ist - aber dann nicht mehr zu verschieben ist, weil der Pfad zu lange ist...

"Normalerweise" hat so eine Unterunterunter struktur ja auch irgendeinen Sinn - da würde ich lieber selbst Hand anlegen, als eine Batch zu bemühen.

Gruß
Mitglied: bastla
bastla 02.11.2008 um 10:57:07 Uhr
Goto Top
@TimoBeil
Sehe ich zwar grundsätzlich ebenfalls so, aber mit "subst" musst Du ja auch auf einer bestimmten Ebene ansetzen - dann kannst Du diese Ebene aber auch gleich als Quellpfad für den Batch verwenden ...

Grüße
bastla
Mitglied: 60730
60730 02.11.2008 um 11:02:47 Uhr
Goto Top
@ Bastla
eh klar ;-) face-wink

ich würde - nachdem ich mr die frage nochmal angesehen habe - eher zu folgender (ungetester Lösung) tendieren:

Er will ja eigentlich nicht moven, sondern nur die leeren löschen.
Und dann "schön" manuell eine neue Ordnung - oder mittels Batch schaffen.

PS: Ich hatte noch keinen Kaffe ;-) face-wink - möglich das der Ansatz voll daneben ist.
Mitglied: Larz
Larz 02.11.2008 um 11:50:12 Uhr
Goto Top
Hallo zusammen,

danke für eure Beiträge soweit. Es ist tatsächlich wie TimoBeil sagt - ich will die gesamte Struktur eigentlich "nur" löschen. Aufgrund der Unterunterunter-Ordner geht das aber nicht. D.h. alle Unterordner sollten einfach mal in den Root-Ordner verschoben werden, dann kann man die 34567 oder was weiß ich wie viele Ordner flach löschen.

@TimoBeil: Das hat so nicht geklappt, innerhalb der Batch sagt er immer wieder "Verzeichnisname zu lang" - wolltest Du damit direkt löschen? "delims" sagt mir leider nichts...

Gruß
Larz
Mitglied: bastla
bastla 02.11.2008 um 12:03:16 Uhr
Goto Top
Hallo Larz!

Wenn der Pfad noch immer zu lang ist, dann vielleicht besser so:
Damit wird nur die in der ersten Zeile angegebene Ebene abgearbeitet, wobei die Unter-Unterordner gleich mit gelöscht werden.

Sollte das noch immer nicht klappen, musst Du eben den Pfad in Zeile 1 noch tiefer ansetzen.

Grüße
bastla
Mitglied: miniversum
miniversum 02.11.2008 um 12:21:01 Uhr
Goto Top
Ich hätte da noch 2 Ideen für einen ganz anderen Ansatz. Ist aber nur so ein Tip ins blaue hinein. Aber so hat das bei mir schonmal innem ähnlcihen Fall funktioniert:
Lösche einfach ganz normal den ordner, verwende dazu allerdings die Kurzen Verzeichnisnamen.

Die andere idee wäre einfach nur den obersten Ordner (also der indem die unterordner liegen). Also:

Mitglied: Larz
Larz 02.11.2008 um 18:15:16 Uhr
Goto Top
Hey Bastla,

die Lösung bringt's, danke! Endlich sind diese lästigen Verzeichnisse weg....
Könntest Du mir kurz erläutern, was die zweite Zeile so macht? Z.B. %%i und 2>NUL ?
Schließlich will ich verstehen, nicht nur kopieren... ;-) face-wink

Danke nochmal

Gruß
Larz
Mitglied: bastla
bastla 02.11.2008 um 18:28:53 Uhr
Goto Top
Hallo Larz!
Könntest Du mir kurz erläutern, was die zweite Zeile so macht?
Grundsätzlich findest Du zu allen verwendeten Befehlen Hilfestellung durch Eingabe von "Befehl /?", also etwa "for /?" in der Kommandozeile ...

Gehe alle Ordner ("directories") in "K:\" (Name egal) durch und speichere den Ordnerpfad in "%%i"
Lösche den durch "%%i" angegebenen Ordner samt Unterordnern ("subdirectories"), und das ohne lästige Fragen ("quiet")
Schicke ev auftretende Fehlermeldungen (Fehlerkanal = 2) nach "Nirgendwo" ("NUL") und verhindere damit eine Bildschirmanzeige selbiger - wäre hier (bei einer einmaligen Aktion) eigentlich nicht nötig gewesen (sieht aber, vor allem bei regelmäßig verwendeten - und schon gut getesteten - Batches, eleganter aus ;-) face-wink)

Grüße
bastla
Mitglied: 65883
65883 11.03.2011 um 14:11:22 Uhr
Goto Top
Hallo,

ich habe (oder besser ich hatte) hier 5000 RAR-Archive.

(log0001.rar , log0002.rar , ...)

Beim Entpacken wurde für jede RAR-Datei ein Verz. erstellt. Soweit ok.

Nun war der Inhalt selbst in einem Verzeichnis mit gepackt.
NACH dem entpacken und Löschen der RAR-Dateien hab ich jedoch leider pro Verzeichnis ein Verzeichnistiefe zu viel:

Ursprung:

log0001.rar


entpackt:

log0001/log0001/dat001.log
log0001/log0001/dat002.log
log0001/log0001/dat003.log
usw.


So sollte es ausschauen:

log0001/dat001.log
log0001/dat002.log
log0001/dat003.log
usw.

Wie bekomme ich in jedem der 5000 Verzeichnisse jeweils eines Verzeichnis gelöscht?

Kann ich die Lösung von bastla 1:1 übernehme?


Gruß ... tc
Mitglied: bastla
bastla 11.03.2011 um 16:27:18 Uhr
Goto Top
Hallo truecolor!

Ist eigentlich eine andere Fragestellung ...

Ausgehend von einem "Überordner" (im Beispiel "D:\Entpackt", daher gäbe es also "D:\Entpackt\og0001\log0001\dat001.log" usw) könnte das so gehen:
Die "echo"-Befehle vor "move" und "rd" sollen ein gefahrloses Testen ermöglichen - solange die da stehen, werden die Verschiebe- und Löschbefehle nur angezeigt, aber nicht ausgeführt ...

Grüße
bastla

[Edit] Auf "for /f" umgestellt [/Edit]
Heiß diskutierte Beiträge
general
Kosten nicht gerechtfertigt? Dienstleister stellt Kosten für "Troubleshooting" bei Neuanschaffung von HCI + CoreSwitchDirty2186Vor 1 TagAllgemeinZusammenarbeit17 Kommentare

Hallo Zusammen, ich interessiere mich für Eure Meinung zu dem Thema Leistungsnachweise von Systemhäusern und Dienstleistern und deren Berechnung von Leistungen. Da sich hier ja ...

question
Listet Microsoft Default ACLs von Windows?DerWoWussteVor 1 TagFrageSicherheit18 Kommentare

Moin Kollegen. Nach dem Sicherheits-GAU "Hivenightmare" stellt sich mir die Frage, wie ich in Zukunft sicherstellen kann, dass die ACLs der Systemdateien in Windows korrekt ...

question
Doppelte A-Records in DNSBPeterVor 1 TagFrageWindows Server10 Kommentare

Hallo, unsere Windows Notebooks registrieren sich im DNS mit ihrer Lan- und Wlan Adresse. D.h. es gibt 2 gleiche Namen mit 2 unterschiedlichen IP-Adressen. Wie ...

question
2U Home-Server Frage zur HardwaremossoxVor 23 StundenFrageServer-Hardware10 Kommentare

Hallo zusammen, ich habe in den letzten Jahren auf die Systeme von Synology gesetzt. Im Wesentlichen ging es immer nur um simple CIFS Dienste, nichts ...

question
Powershell Ordner löschen die älter als x Tage sindsascha46Vor 21 StundenFrageEntwicklung6 Kommentare

Hallo Ich würde gerne in einem Verzeichnis alle Ordner die älter als X Tage sind löschen. Aber irgendwie bekomme ich das nicht hin. Bisher habe ...

question
Firmengelände Glasfaser mehrere GebäudeTonLichtVideoVor 18 StundenFrageNetzwerke4 Kommentare

Hallo zusammen, Ist Zustand: Firmengelände mit mehreren großen Hallen die zentral per Glasfaser verbunden werden sollen. Längen zwischen 100 und 400 Metern. Aufgrund der Zukunftssicherheit ...

question
Antivirus auf Synology sinnvoll?CoreknabeVor 1 TagFrageSAN, NAS, DAS3 Kommentare

Moin, nachdem Antivirus Essentials auf unserem Synology-NAS wieder einmal lustige Kapriolen fabriziert (Installationsdatei für MS Office ist hochgefährlich), stelle ich mir die Frage, ob es ...

question
Abfrageprob in Access gelöst martenkVor 1 TagFrageVB for Applications4 Kommentare

Hallo, meine Tabelle Reservierungen sieht so aus id_Objekt_Anreise_Abreise_Miete 1_A2_01.02.2021_07.02.2021_350 2_A3_02.02.2021_06.02.2021_150 3_A2_02.02.2021_03.02.2021_50 4_A2_15.02.2021_26.02.2021_500 5_A3_08.02.2021_12.02.2021_300 jetzt gebe ich im HF z.b. den Bereich ein 01.01. - 03.03. ...