Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Ordnerstruktur via Batch anpassen (Unterordner zusammenführen)

Frage Entwicklung Batch & Shell

Mitglied: hardye0815

hardye0815 (Level 1) - Jetzt verbinden

09.02.2013 um 11:57 Uhr, 1619 Aufrufe, 3 Kommentare

Hallo,

ich würde gerne eine Verzeichnsistruktur, bestehend aus über 500 Ordnern, anpassen.
Im Verzeichnis "D:\Todo\" gibt es 500 Ordner, die alle einen Unterordner "aaa" besitzen, sowie weitere Ordner jeweils. Ich würde gerne mit Hilfe eines Scripts alle jpg-Dateien aus dem Ordner "aaa" eine Ebene nach oben verschieben, vorher aber auch die Dateien im Hauptorder löschen sowie alle Unterordner, die nicht "aaa" heißen und den Ordner "aaa" danach löschen.
Ich habe schon diverse Batches durchprobiert, aber keines hat so recht funktioniert.


Für einen Tip wäre ich dankbar.

VG Hardy
Mitglied: bastla
09.02.2013 um 13:31 Uhr
Hallo hardye0815!

Wenn mit
die Dateien im Hauptorder löschen sowie alle Unterordner, die nicht "aaa" heißen und den Ordner "aaa" danach löschen
bedeuten soll, dass es am Ende als Inhalt des Hauptordners nur noch die "jpg"-Dateien aus "aaa" geben soll, dann ungetestet etwa so:
01.
@echo off & setlocal 
02.
set "Basis=D:\Todo" 
03.
set "Quelle=aaa" 
04.
set "Typ=jpg" 
05.
 
06.
for /d %%o in ("%Basis%\*") do ( 
07.
    echo Bearbeite "%%o" 
08.
    pushd "%%o" 
09.
    for /d %%u in (*) do if /i "%%~nxu" neq "%Quelle%" rd /s /q "%%u" 
10.
    del /q /f "*.*" 
11.
    move "%Quelle%\*.%Typ%" >nul 2>nul 
12.
    rd /s /q "%Quelle%" 2>nul 
13.
    popd 
14.
)
Bitte nicht mit den Originaldaten testen, da der Batch "scharf" geschaltet ist und tatsächlich Unterordner und Dateien löscht!

Grüße
bastla
Bitte warten ..
Mitglied: hardye0815
09.02.2013 um 13:36 Uhr
Hey, vielen Dank!
Das hat wirklich geklappt, Hut ab!
Ich versuche jetzt mal den Inhalt des Scripts zu verstehen. Es läuft perfekt.

Danke!
Bitte warten ..
Mitglied: bastla
09.02.2013 um 14:23 Uhr
Hallo hardye0815!
Das hat wirklich geklappt
Ich bin auch ganz überrascht - freut mich jedenfalls ...
Ich versuche jetzt mal den Inhalt des Scripts zu verstehen
Dabei könnte es helfen, es mit "echo on" und direkt aus einer CMD-Shell laufen zu lassen bzw zumindest am Ende noch eine Zeile
pause
anzufügen, wenn Du es doch per Doppelklick startest.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Video & Streaming
Kamera mit 24-7 auf Website hat Aussetzer (6)

Frage von Calvus zum Thema Video & Streaming ...