Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

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

Frage Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

02.11.2008, aktualisiert 18:29 Uhr, 8292 Aufrufe, 13 Kommentare

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
Mitglied: bastla
02.11.2008 um 10:25 Uhr
Hallo Larz!

Sollte eigentlich so gehen:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Dein\langer\Pfad\zu\den\Unterordnern" 
03.
set "Ziel=D:\KurzerPfad" 
04.
 
05.
if not exist "%Ziel%" md "%Ziel%" 
06.
for /d %%i in ("%Quelle%\*.*") do if not exist "%Ziel%\%%~nxi" move "%%i" "%Ziel%"
Ansonsten sollte der Zugriff auf die tiefer liegenden Ordner aber auch klappen, wenn Du den "Weg" mit
subst K: "D:\Dein\langer\Pfad\zu\den\Unterordnern"
verkürzt (anstelle von "K" tut es natürlich jeder freie Laufwerksbuchstabe).

Mit
subst K: /d
gibst Du den Buchstaben "K" wieder frei.

Grüße
bastla

[Edit] Pfadangabe bei "subst" korrigiert. [/Edit]
Bitte warten ..
Mitglied: Larz
02.11.2008 um 10:42 Uhr
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

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


Gruß
Larz
Bitte warten ..
Mitglied: bastla
02.11.2008 um 10:51 Uhr
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
Bitte warten ..
Mitglied: 60730
02.11.2008 um 10:52 Uhr
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ß
Bitte warten ..
Mitglied: bastla
02.11.2008 um 10:57 Uhr
@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
Bitte warten ..
Mitglied: 60730
02.11.2008 um 11:02 Uhr
@ Bastla
eh klar

ich würde - nachdem ich mr die frage nochmal angesehen habe - eher zu folgender (ungetester Lösung) tendieren:
01.
subst K: "D:\Dein\langer\Pfad\zu\den\Unterordnern" 
02.
FOR /F "delims=" %%i in ('dir /b /s /ad k:') do rd "%%i" 2>NUL
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 - möglich das der Ansatz voll daneben ist.
Bitte warten ..
Mitglied: Larz
02.11.2008 um 11:50 Uhr
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
Bitte warten ..
Mitglied: bastla
02.11.2008 um 12:03 Uhr
Hallo Larz!

Wenn der Pfad noch immer zu lang ist, dann vielleicht besser so:
01.
subst K: "D:\Dein\langer\Pfad\zu\den\Unterordnern" 
02.
FOR /D %%i in (k:\*.*) do rd /s /q "%%i" 2>NUL
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
Bitte warten ..
Mitglied: miniversum
02.11.2008 um 12:21 Uhr
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:
01.
 rd /s C:\Ab_Hier_viele_Unterordner
Bitte warten ..
Mitglied: Larz
02.11.2008 um 18:15 Uhr
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...

Danke nochmal

Gruß
Larz
Bitte warten ..
Mitglied: bastla
02.11.2008 um 18:28 Uhr
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 ...

FOR /D %%i in (k:\*.*) do
Gehe alle Ordner ("directories") in "K:\" (Name egal) durch und speichere den Ordnerpfad in "%%i"
rd /s /q "%%i"
Lösche den durch "%%i" angegebenen Ordner samt Unterordnern ("subdirectories"), und das ohne lästige Fragen ("quiet")
2>NUL
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 )

Grüße
bastla
Bitte warten ..
Mitglied: truecolor
11.03.2011 um 14:11 Uhr
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?

01.
subst K: "D:\Dein\langer\Pfad\zu\den\Unterordnern" 
02.
FOR /D %%i in (k:\*.*) do rd /s /q "%%i" 2>NUL
Gruß ... tc
Bitte warten ..
Mitglied: bastla
11.03.2011 um 16:27 Uhr
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:
01.
@echo off & setlocal 
02.
pushd "D:\Entpackt" 
03.
for /f "delims=" %%i in ('dir /b /ad') do if exist "%%i\%%i\" ( 
04.
    echo move "%%i\%%i\*.*" "%%i" 
05.
    echo rd "%%i\%%i" 
06.
07.
popd 
08.
pause
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]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Per Batch Dateien aus Unterordner verschieben
gelöst Frage von ministaBatch & Shell10 Kommentare

Hallo Zusammen Ich habe folgende Struktur: Ich möchte nun dass alle Dateien aus dem Ordner B und deren Subordner ...

Batch & Shell
Batch Datei zum verschieben von Dateien aus Unterordnern ?
gelöst Frage von Ghostrider1911Batch & Shell10 Kommentare

Hallo, ich bräuchte eine Batch Datei die Dateien aus Unterordnern verschiebt. Also ich habe folgende Verzeichniss Struktur: Z:\Dateien\Ordner1\M1\ Z:\Dateien\Ordnärx\M1\ ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben
Frage von MrRoyalVB for Applications1 Kommentar

Hallo zusammen, ich bin neu hier und kenne mich leider im Bereich VBS und Batch nicht so gut aus. ...

Batch & Shell
SFTP-Verzeichnis: Zeitgesteuertes Verschieben anhand Dateiname in Unterordner
Frage von Siggi92Batch & Shell6 Kommentare

Hallo zusammen, aktuell werden bei uns in einem SFTP-Verzeichnis mehrere Ordner mit Dateien automatisch (extern) angereichert. Diese Dateien sind ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...