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

Batch, Dateien verschieben - Ordner löschen

Frage Entwicklung Batch & Shell

Mitglied: Commodore

Commodore (Level 1) - Jetzt verbinden

02.09.2008, aktualisiert 23.10.2012, 10118 Aufrufe, 5 Kommentare

Hallo und Grüsse aus dem hohen Norden,

leider hab ich so lange an der 1. Ausführung meines Problems geschrieben, das ich abgemeldet wurde und der gesamte Artikel futsch ist.
Also, Auf ein neues! Ich habe folgendes Problem:

Ich habe ein Bilderarchiv welches an der Zeit wäre zu sortieren bzw. neu zu strukturieren. Leider gibt es hierbei einige Komplikationen:

Ersteimal ein Überblick in die Ordnerhierachie:

1.Ebene - Ein Gesamtordner, der in der ...
2.Ebene - ...sehr viele Unterordner mit unterschiedlichen Namen enthält, der widerum in der...
3.Ebene - ...jeweils einen Ordner Namens "pics" enthält, wo die Bilder enthalten sind.

Bsp:
"Bildarchiv\656i\pics\67.jpg"
.
.
"Bildarchiv\012\pics\56.jpg"

Ich möchte die Bilder in den übergeordneten Ordner verschieben und den nun leeren pics Ordner löschen.

Bsp:
"Bildarchiv\656i\67.jpg"
.
.
"Bildarchiv\012\56.jpg"

Ich habe eine kleine Batch geschrieben, die aber mein Problem nicht vollständig abdeckt, da Sie in jeden "pics" Ordner per Hand zu kopieren wäre, anschliessend auszuführen wäre und es dadurch nicht wirklich eine Zeitersparniss wäre:

[copy.bat]
move *.jpg ..\

Wie gesagt es ist nur ein rudimentärer Ansatz zur Lösung dieses Problems.

Meine Lösung wäre es eine Batch zu schreiben, die die "copy.bat" in jedes "pics" Verzeichnis kopieren würde, diese dort ausführen lässt und anschliessend den Ordner "pics" löscht.
Aber der Kasus Knacktus ist für mich der, das die Ordner der 2. Ebene verschiedene (fast zufällige) Namen haben (Bsp. "45i","064v", usw.) und ich dadurch auch nicht in der Lage bin, auf Grund meiner beschränkten Batch Kenntniss, die Batchdatei für jeden Ordner in die 3.Ebene zu kopieren.

Ich habe auch folgenden Artikel studiert, konnte aber wegen nur Grundlegender Batchkenntniss keine Lösung zu diesem Problem ableiten:
http://www.administrator.de/frage/ordnerstruktur-aufl%c3%b6sen%2c-neue- ...

Wenn Ihr ein solches Problem schon einmal gelöst habt, es einfach wisst oder Lust am Kniffligem habt, dann zögert bitte nicht, diesen für mich Gordischen Knoten aufzulösen.

Mein Dank ist euch in jedem Fall Gewiss.



Mit freundlichen Grüßen
Commodore
Mitglied: Biber
03.09.2008 um 01:03 Uhr
Moin Commodore,

wenn es eine einmalige Aktion ist, verzichte auf einen Batch und feuere folgendes vom CMD-Prompt ab:

01.
for /d %i in (x:\deinpfad\bildarchiv\*) do @move "%i\pics\*.jpg" "%i\" & rd "%i\pics"


Die Anführungszeichen nur für den Fall, dass einzelne *.jpg's oder "x:\deinpfad\" Leerzeichen enthalten.

Für einen gefahrlosen Probedurchlauf "@move" durch "@echo move" ersetzen.

Grüße
Biber
Bitte warten ..
Mitglied: Commodore
03.09.2008 um 11:20 Uhr
Moin Moin Biber,

ich danke dir für dein Lösungsvorschlag, ich werde mich jetzt ransetzen und versuchen die Befehlszeile zu verstehen. Dafür muss ich aber noch ein bischen Batch lernen, da ich es ja auch verstehen muss bzw. will.

Mit freundlichen Grüßen
Commodore
Bitte warten ..
Mitglied: Commodore
03.09.2008 um 13:30 Uhr
Ich bin jetzt schon mal ein ganzes Stück weiter was das Verständnis anbelangt:
%i ist der Platzhalter (wie in C z.B. für float-variablen);
in der for-in-do Schleife ist "*" das Jokerzeichen für den Match-Code.

Bloß was ist das "/d" nach der for-Schleife und warum das "@"-Zeichen vor dem "move"?

Anmerkung: Wenn ich diesen Befehl in eine Batch schreiben wollte, müsste ich doch den ersten Platzhalter "%i" in "%%i" umschreiben, Korrekt?

Auf jeden Fall funktioniert dein Code tadellos und bedanke mich für deine Lösung und prompte Antwort.

Mit freundlichen Grüßen
Commodore
Bitte warten ..
Mitglied: Biber
03.09.2008 um 13:48 Uhr
Moin Commodore,

%i ist der Platzhalter (wie in C z.B. für float-variablen);
Jein... %a, %b, %c... etc sind die dokumentierten Platzhalter für "dynamische" Laufzeitvariablen, die nur innerhalb einer FOR-Anweisung existieren. Mit zwei Prozentzeichen -also %%a, %%b, %%c.... werden diese im Batch geschrieben.
Siehe in der Hilfe zu FOR-> For/? am CMD-Prompt.
in der for-in-do Schleife ist "*" das Jokerzeichen für den Match-Code.
Jepp.
Bloß was ist das "/d" nach der for-Schleife und warum das "@"-Zeichen vor dem "move"?
For /D --> auf Directories bezogen. Siehe For /?
"@" vor einem CMD-Befehl unterdrückt das "echo". Unwichtig.

Grüße
Biber
Bitte warten ..
Mitglied: Commodore
03.09.2008 um 13:59 Uhr
Ach so... ohne das /D würde der Computer nach Dateien und nicht nach Ordnern suchen, Alles klar.
Super damit wäre alles geklärt.

Danke nochmals!

Mit freundlichen Grüßen
Sönke
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 (keine Ordner) löschen die älter sind als (4)

Frage von siziigilendirmez zum Thema Batch & Shell ...

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

Frage von tocksick zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...