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

Frage Microsoft

Mehrere Ordner eine Ebene höher verschieben

Mitglied: chris123

chris123 (Level 1) - Jetzt verbinden

12.01.2009, aktualisiert 12:46 Uhr, 9601 Aufrufe, 4 Kommentare

Hi

Ich habe einen Ordner Kunden, wo alle Kundenordner drin sind (Kunde A, Kunde B usw.) In jedem Kundenordner gibt es einen Ordner 2008, wo mehrer Unterordner drin sind. Da wir den Ordner 2008 nicht mehr benötigen, sollen alle Unterordner der jeweiligen Kunden aus 2008 eine Ebene höher verschoben werden. Also direkt als Unterordner von Kunde A usw.. Da es ziemlich viele Ordner sind, würde ich das gerne automatisieren. Gibt es da eine Möglichkeit?

Vielen Dank
Chris
Mitglied: moesch123
12.01.2009 um 14:02 Uhr
Hallo,

ich denke das du mit Automatisieren eine Batchfile meinst.
Guck dir mal in der cmd die Befehle xcopy an. Damit kannst du die Ordner kopieren.
Mit dem Befehl del kannst du das Quellverzeichnis im Anschluss löschen.

Oder was meinst du mit automatisieren?
Bitte warten ..
Mitglied: bastla
12.01.2009 um 21:18 Uhr
@moesch123
Vielleicht wäre chris123 mit "move" und "rd" eher gedient, etwa:
01.
@echo off & setlocal 
02.
set "Basis=D:\Kunden\" 
03.
 
04.
for /d %%i in ("%Basis%*.*") do ( 
05.
    if exist "%%i\2008\" ( 
06.
        echo Bearbeite: %%i 
07.
        for /d %%a in ("%%i\2008\*.*") do echo move "%%a" "%%i" 
08.
	dir "%%i\2008\" /a-d /w >nul 2>&1 && echo move "%%i\2008\*.*" "%%i" 
09.
	dir "%%i\2008\" /s /a-d /w >nul 2>&1 || echo rd "%%i\2008" 
10.
11.
)
Vorweg:
Da aus der Problembeschreibung nicht hervorgeht, ob sich in "2008" nur Unterordner oder auch Dateien befinden können, werden auch letztere berücksichtigt.

Soferne ein gleichnamiger Ordner bereits im Kundenordner existiert (also etwa "Kunde A\Anfragen" und "Kunde A\2008\Anfragen"), kann der Ordner (trotz Abfrage nach einem "Überschreiben" und unabhängig von der Antwort) nicht verschoben werden - der Batch läuft allerdings für die übrigen Ordner / Kunden weiter. Anders ist dies hinsichtlich bereits vorhandener Dateien - diese werden automatisch (also ohne Rückfrage) überschrieben!

Zum Code:
Mit dem in Zeile 2 festgelegten Ordner ist der "Überordner" von "Kunde A", "Kunde B" etc gemeint. Bitte zu beachten, dass dieser Ordner mit einem "\" am Ende geschrieben werden muss.

Die beiden "echo" vor den "move"-Befehlen simulieren (zum Testen) das Verschieben von Ordnern bzw Dateien durch Ausgabe des entsprechenden Befehles - erst, wenn diese "echo" entfernt sind, wird verschoben, und erst dann kann durch die Zeile 9 der zurückbleibende leere Ordner "2008" gelöscht werden.

Als "leer" gilt dieser Ordner, wenn sich darin und in ev verbliebenen Unterordnern keine Dateien mehr befinden. Damit nicht unbeabsichtigt eine vorhandene, aber keine Dateien beinhaltende Ordnerstuktur schon beim Testen gelöscht wird, ist der "rd"-Befehl ebenfalls durch ein vorangestelltes "echo" vorerst "entschäft" - daher im Ernstfall auch dieses letzte "echo" noch entfernen ...

Als "kosmetisches" Detail: Damit die verschobenen Einzeldateien nicht angezeigt werden, kann die Zeile 8 (nur, wenn wirklich verschoben werden soll!) durch
dir "%%i\2008\" /a-d /w >nul 2>&1 && move "%%i\2008\*.*" "%%i" >nul
ersetzt werden - sieht etwas ordentlicher aus ...

Grüße
bastla
Bitte warten ..
Mitglied: chris123
13.01.2009 um 15:10 Uhr
Hallo

erstmal vielen Dank für die Antwort. Ich habe das Skript folgendermaßen angepaßt:
@echo off & setlocal
set "Basis=D:\test\Bereich 2\"
for /d %%i in ("%Basis%*.*") do (
if exist "%%i\2008\" (
echo Bearbeite: %%i
for /d %%a in ("%%i\2008\*.*") do echo move "%%a" "%%i"
dir "%%i\2008\" /a-d /w >nul 2>&1 && echo move "%%i\2008\*.*" "%%i"
dir "%%i\2008\" /s /a-d /w >nul 2>&1 || echo rd "%%i\2008"
)
)
und bekomme eine Fehlermeldung. Leider kann ich hier jetzt kein Bild hinzufügen. Aber vielleicht ist es ja auch so ersichtlich, wo der Fehler liegt.

Vielen Dank nochmal
Bitte warten ..
Mitglied: bastla
13.01.2009 um 17:08 Uhr
Hallo chris123!

Ein ganzes Bild für eine Fehlermeldung?

Du kannst ja bequem Text aus einem CMD-Fenster kopieren, wenn Du zunächst auf das Systemmenüfeld ganz links in der Titelleiste des CMD-Fensters klickst, dort "Eigenschaften" wählst und unter "Bearbeitungsoptionen" den "QuickEdit-Modus" aktivierst. Beim Schließen des Dialoges solltest Du noch festlegen, dass diese Einstellung für "alle Fenster mit gleichem Namen" gelten soll.

Danach kannst Du einfach mit der Maus im CMD-Fenster Text markieren und diesen per Rechtsklick in die Zwischenablage kopieren, bzw, wenn kein Text markiert ist, per Rechtsklick aus der Zwischenablage in das CMD-Fenster Text einfügen.
Leider erhalte ich bei einem Test mit Deinem Batch keine Fehlermeldung ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bestimmte Dateien aus Unterordner eine Ebene höher verschieben
gelöst Frage von OOmatrixOOBatch & Shell2 Kommentare

Hallo. Ich habe folgende Ausgangssituation: Hauptordner Ordner x Unterordner x Ordner y Unterordner y usw. Ich möchte nun die ...

Batch & Shell
Dateien eine Ebene höher
Frage von 918103Batch & Shell7 Kommentare

Hallo, habe diese Bat gefunden, aber diese funktioniert nur wenn ich im jeweiligen Ordner bin. for /d %%v in ...

PHP
Ticketsystem mit Meldung über mehrere Ebenen
Frage von tsunamiPHP4 Kommentare

Hallo, ich brauche bitte einen Ansatz: Gegeben sei eine Abteilungshierachie. 1. Chef 2. Techische Leitung 3. Elektriker, Sanitär, Hausmeister ...

Exchange Server
Kann Emails nicht mehr in den öffentlichen Ordner verschieben
gelöst Frage von rababar2014Exchange Server2 Kommentare

Hallo Forum, ich erhalte soeben eine Fehlermeldung beim Verschieben von Emails aus dem Postfach in den öffentlichen Ordner: "Die ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...