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
GELÖST

Per Batch dateien aus Unterordner in den Hauptordner verschieben

Frage Entwicklung Batch & Shell

Mitglied: zavjah

zavjah (Level 1) - Jetzt verbinden

25.02.2007, aktualisiert 26.02.2007, 12286 Aufrufe, 3 Kommentare

Hallo erstmal,

ich hoffe, dass ist der richtige Ort, um diese Frage zu stellen.

In meiner Verzeichnisstruktur habe ich ca. 100 Ordner, von den manche einen Unterordner haben und manche nicht.

Ich möchte gerne eine Batch schreiben, die alle 100 Hauptordner durchläuft und wenn in einem Hauptordner ein Unterordner vorhanden ist, die Dateien, die im Unterordner sind in den Hauptordner verschiebt.

Geht so was auf einem Rechner, auf dem WinXp Home läuft?

Danke im Voraus,
Nermin
Mitglied: bastla
25.02.2007 um 21:52 Uhr
Hallo Hajvazovic und willkommen im Forum!

Wenn es nur eine Unterordnerebene gibt (also die Unterordner nicht selbst noch weitere Unterordner haben), könntest Du folgenden Batch verwenden:
01.
@echo off 
02.
cd /d C:\\ 
03.
 
04.
for /f "delims=" %%i in ('dir /b /ad') do ( 
05.
    for /f "delims=" %%j in ('dir "%%i" /b /ad') do @echo move /y "%%i\%%j\*.*" "%%i" 
06.
)
Diese Zeilen speicherst Du als "MoveUp.bat" (oder mit einem Namen, der Dir besser gefällt, solange er auf ".bat" endet) in das Hauptverzeichnis (den Ordner, in dem sich Deine 100 Ordner befinden, zB "C:\"). Dieser Ordner muss auch in der zweiten Zeile nach dem "cd /d" stehen.

Wenn Du die gespeicherte Batchdatei ausführst, wird Dir zunächst nur angezeigt, was passieren würde (zum Abbrechen die Tastenkombination "Strg"-"c" verwenden). Sofern der Ablauf für Dich ok ist, entfernst Du aus der vierten Batchzeile das "@echo " zwischen dem "do" und dem "move". Ab jetzt verschiebt die Batchdatei wirklich.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
25.02.2007 um 22:34 Uhr
Moin Hajvazovic,

willkommen im Forum.

Ich halte Deinen Plan nicht für bis ins Detail ausgefeilt, aber handwerklich lösbar ist es mit folgender Zeile vom CMD-Prompt:
01.
for /d %i in (\*.*) do cmd /c for /r "%i\" %j in (*.*) do <b>@ECHO</b> move "%j" "%i\*.*"
Einschränkungen:
- kann relativ gefahrlos abgefeuert werden, durch das @ECHO zeigt die Anweisung nur, was sie tun würde... nur Simulation.
- es wird maximal in die erste Unterverzeichnisebene (i.e. "D:\temp" oder "C:\Programme") verschoben, nicht in die Root-Ebene C:\ oder D:\
- der MOVE-Befehl ist ohne Schalte /y aufgerufen und würde deshalb keine vorhandenen Dateien löschen.
- leere Verzeichnisse werden nicht gelöscht. Dafür kann später eine globale "FOR /R .....RD "%i""-Anweisung erfolgen. Wird bei Bedarf nachgereicht.
Meine Empfehlung:
- Schau Dir bitte erst mal so an, was passieren würde, wenn Deine Anforderung wortwörtlich batchmäßig umgesetzt werden würde.
[Anmerkung: "Batch" hat die gleiche sprachliche Wurzel wie das süddeutsche "Batschkopp" - der führt halt alles aus, was Du ihm sagst.]
- oder wende den obigen Befehl selektiv auf einzelne Verzeichnisse an, wo Du Dir ganz sicher bist, dass dort nur Daten (und keine Programme mit angelegten Verzeichnisstrukturen vorhanden sind
Beispiel: "for /d %i in (D:\unkritisches\Subdir\*.*) do ...."

Gruss
Biber
[Edit] Upps. Moin bastla.... Du tippst einfach schneller als ich... [/Edit]
Bitte warten ..
Mitglied: zavjah
26.02.2007 um 07:12 Uhr
Moin Bastla, moin Biber,

erstmal vielen Dank für dei schnellen Antworten.

Ich werde es heute ausprobieren und geben dann rückmeldung.

Viele Grüße,
Nermin
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien mit Teil des Dateinamen per Batch in Unterordner verschieben (14)

Frage von smitternacht zum Thema Batch & Shell ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben (1)

Frage von MrRoyal zum Thema VB for Applications ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...