Unterordner automatisch ergänzen?

Forum zur Erstellung von Schaltern über den Befehlseditor
Antworten
tatchdaun
Beiträge: 28
Registriert: 26. Mai 2010 19:14
Betriebssystem: win 7 pro / 64 bit /
Produkt: DOpus 10.0.3

Unterordner automatisch ergänzen?

Beitrag von tatchdaun » 9. Sep 2011 14:30

Hallo zusammen,
ich habe einen Arbeitsgang den ich automatisieren möchte- das scheint ziemlich kompliziert zu sein?
Ich habe mit Codes bisher leider nichts am Hut und hoffe auf Hilfe...

1. Arbeitsgang

"123456 - Kundenname" ( das ist der Hauptordner ) IN diesem Ordner befindet sich der Ordner "10-Kundendaten"

jetzt sollen die ERSTEN sechs Stellen des Hauptordners also "123456" "kopiert" werden und der UNTERORDNER der sich immer "10-Kundendaten" nennt wie folgt umgeschrieben werden:

"123456-10-Kundendaten"


2. Arbeitsgang

in dem soeben umgeschriebenen Ordner

"123456-10-Kundendaten"
befinden sich unterschiedlichste Dateien die jetzt alle AUTOMATISCH ?
umgeschrieben bzw ergänzt werden sollen!

Diese sollen alle den Namen des Ordners "123456-10-Kundendaten" bekommen.

So wird also zb.aus

anleitung.txt = 123456-10-Kundendaten-anleitung.txt
oder aus
bild05.jpg = 123456-10-Kundendaten-bild05.jpg

Geht soetwas oder ist das zu extrem?

Ich bin sehr gespannt.

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Unterordner automatisch ergänzen?

Beitrag von Kundal » 10. Sep 2011 00:13

Das Ganze ließe sich mit VBScript sicher noch eleganter machen (z.B. mit einem einzigen Klick von der oberen Ordner-Ebene) aber das wäre wirklich "höhere Mathematik".
Dieser 2-Wege-Schalter (untere Code-Box) macht genau das, was du haben willst ausgehend vom Ordner "10-Kundendaten" mit 2 Klicks.

Wenn du den Ordner "10-Kundendaten" markiert hast, wird er mit einem Linksklick nach "123456-10-Kundendaten" umbenannt. Ein anschließender Rechtsklick auf den Ordner benennt alle enthaltenen Dateien nach "123456-10-Kundendaten-Dateiname" um.

Buttoncode Linksklick:

Code: Alles auswählen

@nodeselect
Rename FILEINFO 10-Kundendaten TO {parent}-10-Kundendaten 
C:\Program Files\Directory Opus\dopusrt.exe /cmd Rename REGEXP PATTERN "(......) - .*(-.*-.*)" TO=\1\2 
Erklärung:
Die erste Zeile bewirkt, daß der Ordner nach dem ersten Umbenennen markiert bleibt.
Die zweite Zeile benennt den Ordner mit Hilfe der Dateiinformationen (FILEINFO) nach dem übergeordneten Ordner um.
Die dritte Zeile entfernt mit Hile eines regulären Ausdrucks (REGEXP) den Kundennamen. Die Verwendung von dopusrt.exe ist nötig weil es sonst ein Timingproblem gibt (der Zweite Befehl funktioniert nicht, weil der erste noch nicht vollendet ist).

Buttoncode Rechtsklick:

Code: Alles auswählen

GO {filepath} 
Rename *.* TO "{parent}-*" FILEINFO
Go Back
Erklärung:
Die erste Zeile öffnet den Ordner.
Die zweite Zeile benennt, wieder mit Hilfe der Dateiinformationen (FILEINFO), die Dateien nach dem übergeordneten Ordner um.
Die dritte Zeile geht zurück auf die übergerdnete Ordnerebene. Diese Zeile kannst du auch löschen wenn du auf der Dateiebene bleiben willst oder durch Go ..\.. ersetzen um beim Hauptordner zu landen.

Zwei-Wege-Schalter:

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="none" display="icon" textcol="none" type="three_button">
	<label>Kundendaten - Ordner </label>
	<icon1>#rename</icon1>
	<button backcol="none" display="both" textcol="none">
		<label>Kundendaten - Ordner </label>
		<tip>Kundendaten - Ordner </tip>
		<icon1>#rename</icon1>
		<function type="normal">
			<instruction>@nodeselect</instruction>
			<instruction>Rename FILEINFO 10-Kundendaten TO {parent}-10-Kundendaten </instruction>
			<instruction>C:\Program Files\Directory Opus\dopusrt.exe /cmd Rename REGEXP PATTERN "(......) - .*(-.*-.*)" TO=\1\2 </instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>Kundendaten - Dateien</label>
		<tip>Kundendaten - Dateien</tip>
		<icon1>#rename</icon1>
		<function type="normal">
			<instruction>GO {filepath} </instruction>
			<instruction>Rename *.* TO "{parent}-*" FILEINFO</instruction>
			<instruction>Go Back</instruction>
		</function>
	</button>
</button>

tatchdaun
Beiträge: 28
Registriert: 26. Mai 2010 19:14
Betriebssystem: win 7 pro / 64 bit /
Produkt: DOpus 10.0.3

Re: Unterordner automatisch ergänzen?

Beitrag von tatchdaun » 11. Sep 2011 12:16

Hallo Kundal,

HEILIGERBIMBAM das sieht je kompliziert aus!
Was für einen Newbie für mich total klasse gemacht ist, dass Du die Erklärungen WAS in den Codezeilen genau passiert aufgeführt hast!
So kann ich supergut lernen welcher Befehl was genau ausführt und dann hoffentlich nicht mehr so doofe Fragen stellen!

Vielen Dank für die Mühe das hilft mir echt sehr!

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Unterordner automatisch ergänzen?

Beitrag von Kundal » 11. Sep 2011 16:01

HEILIGERBIMBAM das sieht je kompliziert aus!
Ist es auch! Deine "doofe Frage" war wie du siehst eine recht komplexe Aufgabe.
Um noch eins draufzusetzen hier eine Variante, die es dir erlaubt die Aufgabe von deinem Hauptordner aus mit einem Klick zu erledigen:

Buttoncode Linksklick:

Code: Alles auswählen

@nodeselect
Rename FILEINFO {filepath}10-Kundendaten TO {parent}-10-Kundendaten
Go {filepath}
Select *-10-Kundendaten
C:\Program Files\Directory Opus\dopusrt.exe /cmd Rename REGEXP PATTERN "(......) - .*(-.*-.*)" TO=\1\2 
Select *-10-Kundendaten
Select DESELECT ALL 
Select *-10-Kundendaten
Go {filepath}
Rename *.* TO "{parent}-*" FILEINFO
Go ..\..
Erklärung: Durch Hinzufügen von {filepath} in Zeile 2 kann direkt der Unterordner umbenannt werden (Der Backslash für die Pfadangabe ist darin schon enthalten).
Die Select-Befehle in Zeile 4, 6 und 7 dienen wieder nur dem "Zeitschinden". Der Select-Befehl in Zeile 8 ist dagegen notwendig, weil sich ja der Ordnername geändert hat und Zeile 9 den Ordner sonst nicht finden könnte.
Zeile 9 geht zum Unterordner "123456 - Kundenname" wo Zeile 10 das Umbenennen der Dateien vornimmt und Zeile 11 befördert dich wieder 2 Ebenen nach oben, damit du dir dort den nächsten Ordner vornehmen kannst.

Du könntest mit dieser Variante gelegentlich eine Fehlermeldung der Sorte "Pfad nicht gefunden" bekommen. Das hängt mit dem genannten Timingproblem zusammen. Du könntest dann versuchen mehr "Zeitschinder" wie in den Zeilen 6 und 7 einzubauen.

tatchdaun
Beiträge: 28
Registriert: 26. Mai 2010 19:14
Betriebssystem: win 7 pro / 64 bit /
Produkt: DOpus 10.0.3

Re: Unterordner automatisch ergänzen?

Beitrag von tatchdaun » 12. Sep 2011 16:19

Das ist ja ziemlich spannend ! Vielen Dank für den 2. Code..

Ich hab jetzt erstmal den ersten code mit dem 2-Wege Schalter eingesetzt um zu sehen wie - was funktioniert.

Hierbei habe ich festgestellt, dass nach dem Klick - LINKE MAUS-TASTE der Ordner trotz dem Befehl " @nodeselect" nach dem Arbeitsschrit NICHT markiert bleibt
und der Ordner "manuell" wieder markiert werden muss damit der 2. Arbeitsgang funktioniert.

- gibt es noch eine Möglichkeit woanders den Befehl einzufügen damit das automatisch klappt ?

@nodeselect der funktioniert nicht ?!
Rename FILEINFO 10-Kundendaten TO {parent}-10-Kundendaten
C:\Program Files\Directory Opus\dopusrt.exe /cmd Rename REGEXP PATTERN "(......) - .*(-.*-.*)" TO=\1\2

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Unterordner automatisch ergänzen?

Beitrag von Kundal » 12. Sep 2011 20:55

@nodeselect der funktioniert nicht ?!
Mal den Haken entfernen bei Einstellungen=>Voreinstellungen=>Dateioperationen=>Optionen=>In Funktionen verwendete Dateien deselektieren

tatchdaun
Beiträge: 28
Registriert: 26. Mai 2010 19:14
Betriebssystem: win 7 pro / 64 bit /
Produkt: DOpus 10.0.3

Re: Unterordner automatisch ergänzen?

Beitrag von tatchdaun » 12. Sep 2011 22:00

Ahh.. jetzt funktionierts.. vielen Dank!

Antworten

Wer ist online?

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