Umbenennen:Zeichen in Ordner

Forum zur Erstellung von Schaltern über den Befehlseditor
Antworten
TFend
Beiträge: 1
Registriert: 4. Jun 2012 17:23
Betriebssystem: W7 home + ultimate 64bit
Produkt: 10.0.5.0

Umbenennen:Zeichen in Ordner

Beitrag von TFend » 4. Jun 2012 17:34

hallo zusammen,

ich habe immer wieder einige hundert files zu entpacken und umzubenennen nach einem festen schema. dabei soll aus dem dateinamen jeweils eine ordnerstruktur erstellt werden und die files dort hinein entpackt werden. die filenames schauen so aus:

blabla_2012-06-02_verzeichnisname-1_verzeichnisname-2_irgendwas.zip

und ergeben soll das dann:

./verzeichnisname-1/verzeicnisname-2/*.txt

ich habe ein wenig mit der regexp-funktion vom umbenennen herumgespielt, aber werde nicht wirklich schlau daraus. vereinfacht gesagt, möchte ich "nur" den filename bei '_' splitten und daraus die ordner erstellen. kann mir da bitte jemand ein wenig unter die arme greifen?


vielen dank vorab
Tobias

botharg
Beiträge: 4
Registriert: 7. Apr 2013 00:11
Betriebssystem: Win7 Home Premium 64 bit
Produkt: 11.5
Version DOpus: Pro

Re: Umbenennen:Zeichen in Ordner

Beitrag von botharg » 11. Aug 2014 16:42

Hallo!

Es ist zwar schon ETWAS Zeit vergangen ... aber solche Fragen beantwortet man natürlich auch für andere, und da hier noch niemend geantwortet hat - (ganz|relativ) einfach: :wink:
Also bitte nicht darüber aufregen, daß der Thread schon von 2012 ist, vielleicht kann es jemand brauchen, der jetzt oder später über die Frage stolpert...

ein kleines CMD-let (ich nenn' es mal so) in dem Verzeichnis ausführen, in dem die Dateien liegen (CMD-Prompt öffnen):
Extras - Eingabeaufforderung;

Code: Alles auswählen

@for /f "tokens=1-5* delims=_" %a in ('dir /b /a-d *.rar *.zip') do @7z x -o"%c\%d\" "%a_%b_%c_%d_%e"
[/size]
Dabei setzt diese Lösung voraus, daß
- 7z im Suchpfad enthalten ist (Systemvariable "PATH"),
- es sich entweder um RAR oder ZIP Dateien handelt,
- der Trenner ein "_" ist,
- und der Dateiname exakt IMMER nach Deinem Muster ausfällt (also irgendwas_nochwas_VERZEICHNIS1_VERZEICHNIS2_noachetwas.(zip|rar);


Außerdem kann die Zeile so nicht einfach in einer Batchdatei verwendet werden, dafür müsste sie so aussehen:

Code: Alles auswählen

@for /f "tokens=1-5* delims=_" %%a in ('dir /b /a-d *.rar *.zip') do @7z x -o"%%c\%%d\" "%%a_%%b_%%c_%%d_%%e"
[/size]

Für einen kleinen "Knopp", der das automatisch im aktiven Verzeichnis macht, den folgenden Code kopieren:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<usercommand backcol="none" hide_from_menu="no" textcol="none">
	<label>verzeichnis-entpacken</label>
	<tip>dateien nach namen in verzeichnis entpacken</tip>
	<user_label>verzeichnis-entpacken</user_label>
	<icon1>#usercommand</icon1>
	<function type="batch">
		<instruction>@echo off</instruction>
		<instruction>pushd %cd%</instruction>
		<instruction>for /f "tokens=1-5* delims=_" %%a in (&apos;dir /b /a-d *.rar *.zip&apos;) do 7z x -o"%%c\%%d\" "%%a_%%b_%%c_%%d_%%e"</instruction>
		<instruction>popd</instruction>
	</function>
</usercommand>
[/size]

Rechtsklick auf eine Symboleiste - Anpassen - (Dialogfenster "ignorieren") - Rechtsklick auf die gewünschte Symbolleiste - Einfügen; Anpassen-Dialog mit "Ok" schliessen.

Nun prangt ein kleiner (einfacher) Knopp in einer Symbolleiste. Navigiere in das Verzeichnis, welches die zu entpackenden Dateien enthält und löse den Knopp aus - Tataaa!

Ich bin mir SEHR sicher, daß dieses Problem auch mit OPUS-eigenen Befehlen gelöst werden kann, aber damit habe ich mich noch nicht wirklich beschäftigt, da sich meine Wünsche meist mit den mir seit Ewigkeit bekannten CMD Befehlen erfüllen lassen (wie auch hier).

Die Lösung mit dem Benutzerbefehl lässt sich natürlich beliebig anpassen. Wichtig ist außerdem, daß hier aktuell keinerlei Fehlerprüfung oder ähnliches durchgeführt wird. Denkbar wäre, daß zum tatsächlichen Ausführen zuvor geprüft wird, ob man sich in einem bestimmten Verzeichnis befindet, ob überhaupt Dateien nach vorgegebenen Muster vorliegen, wenn nicht, ob diese zuvor umbenannt werden sollen, wie verfahren werden soll wenn die zu entpackende Datei schon existiert, wie mit dem Archiv nach erfolgreichem entpacken verfahren werden soll , ... u.s.w.

***

Wenn es ausreicht, könnte auch folgender Ansatz in angepasster Form hilfreich sein:


Dateien markieren - umbenennen - suchen & ersetzen;
suche nach "_" (ohne ")
ersetze mit "\" (ohne ")

Dieses geniale Programm (DOPUS) macht dann FAST genau das, was Du wolltest - es trennt immer bei "_" den Dateinamen in Pfade auf und verschiebt den Folgeteil in ein entsprechendes Verzeichnis.
LEIDER nimmt diese (einfache) Version der Lösung keine bestimmten Verzeichnisse an (wie Verzeichnis1 und Verzeichnis2), sondern behandelt jeden Teil vor einem Trenner (hier "_") als Verzeichnis
Um also Deinem Wunsch folgen zu können, müsste der Dateiname aus "Verzeichnis1_Verzeichnis2_Dateiname-irgendwas anderes.zip" bestehen.
Dadurch würde allerdings nur die Datei (wie sie ist, also nicht entpackt) mit neuem Namen in die (neu erstellten) Verzeichnisse verschoben.
Mittels Flatview könnten dann die Archive angezeigt und entpackt werden...

... Aber das war mehr so ein Gedankenspiel. Je nach Häufigkeit oder Umfang ist es daher praktisch anwendbar - oder eben nicht.

Gruß
Botharg

masaruta4at
Beiträge: 2
Registriert: 4. Sep 2015 08:34
Version DOpus: Pro

Re: Umbenennen:Zeichen in Ordner

Beitrag von masaruta4at » 13. Feb 2016 10:47

Sehr schön, es macht mich mehr zu verstehen.
gclub download

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste