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

Batch-datei gesucht um (Zwischen)-Ordner zu entfernen, Inhalte aber zu belassen

Frage Entwicklung Batch & Shell

Mitglied: bobbby

bobbby (Level 1) - Jetzt verbinden

17.02.2014, aktualisiert 19.02.2014, 1861 Aufrufe, 6 Kommentare, 1 Danke

Hallo liebe Experten für Batch-files unter Win (7, 64bit),


Meine Problemstellung:

In meinem Workflow beim Importieren von Bilddaten und Katalogen habe ich häufig die Situation
dass ich nachträglich gerne einen überflüssigen Ordner aus der Hierarchie entfernen möchte.
Die Dateien und Ordner in dem überflüssigen Ordner sollten nach einer batch-aktion einfach einen "Stock höher" sein.

Das bräuchte ich:

OrdnerA
...datei 1
...unterordner_überflüssig
.......datei 2
........unterunterordner1
................datei 3

möglichst durch drag´n drop des "unterordner_überflüssig" auf batchfile umwandeln in:

OrdnerA
...datei 1
...datei 2
...unterunterordner1
...........datei3

Cool wäre auch das im Kontextmenü zu haben und mit Rechtsklick auslösen zu können,
aber da weiß ich schon gar nicht wie man das hinbekommt.

In einem Lösungsansatz auf Administrator.de vor 6 Jahren wurde ein sehr ähnliches Problem
schon genial gelöst (darum habe ich mich hoffnungsvoll hier angemeldet).
Ich habe im Netz ansonsten lange und vergeblich nach einer Lösung gesucht.

Ich beziehe mich auf diesen geschlossenen Beitrag:
http://www.administrator.de/frage/ordnerhierarchie-auf-eine-ebene-reduz ...

Das funktioniert zwar prima...aber es verschwinden leider sämtliche Unterhierarchien, ich möchte nur das
alle einen Stock höher rücken, also nur ein Ordner mittendrin verschwindet.
Ich nehme mal an, in Programmierer-Logik bedeutet das sowas wie:
Kopiere Inhalt aus dem angezeigten Ordner in den Übergeordneten und lösche dann den angezeigten Ordner?

Wär toll wenn jemand mir da genauso helfen könnte wie dem Fragesteller vor 6 Jahren geholfen wurde.
Mitglied: bastla
17.02.2014 um 12:32 Uhr
Hallo bobbby und willkommen im Forum!

Im einfachsten Fall würde für das Verschieben schon ein Batch der Art
01.
@echo off & setlocal 
02.
if [%1]==[] goto :eof 
03.
 
04.
pushd %1 
05.
for %%i in (*) do move "%%i" .. 
06.
popd
genügen - allerdings wäre eine Voraussetzung, dass es keine Namenskollisionen zwischen den Inhalten von "OrdnerA" und "unterordner_überflüssig" gibt ...

Grüße
bastla
Bitte warten ..
Mitglied: bobbby
17.02.2014 um 13:06 Uhr
Hallo Bastla,

Danke für die schnelle Antwort.

Das Script hat etwas gemacht...aber nicht das Erwartete.

Der Ordner "überflüssig" war noch da.
Es kamen Ordner hinzu die den Namen von ehemaligen dateien trugen.

Ich habe die Batchdatei neben den zu entfernenden Ordner gelegt und dann den Ordner drauf gezogen.
Habe ich das richtig gemacht?

Zu der von dir angekündigten Limitation:
Meistens habe ich da keine Doppelten Dateien, wenn, dann wäre es schön wenn ich das merken würde
bevor ich mir da was überschreibe....aber das ist eher sekundär.
Bitte warten ..
Mitglied: bastla
LÖSUNG 17.02.2014, aktualisiert 19.02.2014
Hallo bobbby!

Neuer Versuch:
01.
@echo off & setlocal 
02.
if [%1]==[] goto :eof 
03.
 
04.
pushd %1 
05.
for /f "delims=" %%i in ('dir /b/a') do if not exist "..\%%i" (move "%%i" ..) else (echo "%%i" bereits vorhanden!) 
06.
popd 
07.
rd %1 2>nul 
08.
pause
Wenn es gleichnamige Dateien / Ordner gibt, werden sie nicht verschoben sondern bleiben im "überflüssigen" Ordner (der dann natürlich erhalten bleiben muss) ...

Grüße
bastla
Bitte warten ..
Mitglied: bobbby
19.02.2014 um 15:33 Uhr
Suuuper!

Genial und beneidenswert was man mit den entsprechenden Kenntnissen alles aus einem Betriebsystem wie Windows herauszukitzeln vermag.
Vielen herzlichen Dank für die schnelle unkomplizierte Hilfe.

Frage:
Kann ich die Bestätigungsmeldung abschalten?
Kann ich das Ganze irgendwie ins Kontextmenü (Rechtsklickmenü) bekommen?

In jedem Fall bin ich begeistert.
Danke
Bitte warten ..
Mitglied: bastla
LÖSUNG 19.02.2014, aktualisiert um 22:31 Uhr
Hallo bobbby!
Kann ich die Bestätigungsmeldung abschalten?
Dazu würde es genügen, die Zeile 8 wegzulassen; damit aber die Ausgabe der ev bereits vorhandenen Dateien / Ordner trotzdem gelesen werden kann, vielleicht besser:
01.
@echo off & setlocal 
02.
if [%1]==[] goto :eof 
03.
 
04.
set "P=" 
05.
pushd %1 
06.
for /f "delims=" %%i in ('dir /b/a') do if not exist "..\%%i" (move "%%i" ..) else (echo "%%i" bereits vorhanden! & set "P=true") 
07.
popd 
08.
rd %1 2>nul 
09.
if defined P pause
Kann ich das Ganze irgendwie ins Kontextmenü (Rechtsklickmenü) bekommen?
http://www.administrator.de/search/detail.php?what=questions&query= ...

Grüße
bastla
Bitte warten ..
Mitglied: bobbby
19.02.2014 um 22:35 Uhr
Perfekt!
Aus meiner Sicht (der ich dieser Programmiersprache nicht mächtig bin),
sieht das aus wie Zauberei.
So viel Inteligenz in den paar Zeilen... beeindruckend.
Danke
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Tipp für eine Batch-Datei gesucht
gelöst Frage von xwittxBatch & Shell4 Kommentare

Hallo, ich habe folgende Problemstellung. Es gibt auf einem Windows-Server einen Ordner mit einer Unterordnerstruktur. In dieser Struktur befinden ...

Batch & Shell
Hilfe bei Batch Datei gesucht
gelöst Frage von rocco61Batch & Shell14 Kommentare

Hallo zusammen, ich soll, möchte eine Batch erstellen> Ist aus der Mail kopiert , ich benötige bitte eine Batch-Datei, ...

Windows 7
Synchronisationstool gesucht, das INHALTE vergleicht
Frage von diwaffmWindows 76 Kommentare

Hi Leute, ich bin auf der Suche, nach einem Synchronisationstool, dass automatisiert (in zeitlich wählbaren Intervallen) zwei Verzeichnisse miteinander ...

Batch & Shell
Dateien mit gleichem Präfix verschieben, neueste belassen
gelöst Frage von sascha224Batch & Shell3 Kommentare

Hallo, ich habe folgendes Problem: In einem Verzeichnis befinden sich viele gleichartige Files. Der Dateiname besteht aus einem Präfix, ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 5 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 18 StundenMac OS X3 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 1 TagDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 1 TagWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell25 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1019 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...