Dateinamen von Foto umbenennen

Aktuelle Version: 12.17 (16.09.2019)
Alles zum Thema Directory Opus
Antworten
Maui
Beiträge: 63
Registriert: 7. Mär 2019 19:37
Betriebssystem: Windows 10 Pro
Produkt: Opus 12
Version DOpus: Pro

Dateinamen von Foto umbenennen

Beitrag von Maui » 1. Okt 2019 11:46

Hi,
ich möchte gerne Fotos nach dem Original erstellen Datum und Uhrzeit umbenennen.
Dazu gibt es in den Bild-Metadaten "Aufnahmedatum" und "Digitalisierungsdatum"

Ich würde gerne wissen, wo da die unterschieden liegen.
Vom Gefühl her würde ich Aufnahmedatum sagen.

Wo kann ich denn nachschlagen muss um Variablennamen ich für die Werte zu finden.

Danke
M

josinoro
Beiträge: 167
Registriert: 4. Aug 2013 19:58
Version DOpus: Pro

Re: Dateinamen von Foto umbenennen

Beitrag von josinoro » 1. Okt 2019 19:32

Hallo Maui,

ich kopiere dir mal hier meine Schaltersammlung zu diesem Themenbereich. Die sind allesamt nicht von mir, weshalb an dieser Stelle nochmals ein herzliches Danke an die jeweiligen Programmierer und Autoren geht.

Code: Alles auswählen

<?xml version="1.0"?>
	<button backcol="none" display="both" textcol="none">
		<label>MP3-Dateien nach ID3-Tags</label>
		<tip>Benennt MP3-Dateien nach [Nr. - Interpret - Album - Titel.mp3] um</tip>
		<icon1>#togglesounds</icon1>
		<function type="normal">
			<instruction>@nodeselect </instruction>
			<instruction>Rename FILEINFO PATTERN &quot;*.mp3&quot;  TO &quot;{mp3track|#2} - {mp3artist} - {mp3album} - {mp3title}.mp3&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>MP3-Dateien nach ID3-Tags</label>
		<tip>Benennt MP3-Dateien nach [Interpret - Titel.mp3] um</tip>
		<icon1>#togglesounds</icon1>
		<function type="normal">
			<instruction>@nodeselect </instruction>
			<instruction>Rename FILEINFO PATTERN &quot;*.mp3&quot;  TO &quot;{mp3artist} - {mp3title}.mp3&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>MP3&apos;s nach Tags ordnen</label>
		<tip>Benennt MP3&apos;s nach ID3-Tags um und legt eine Ordnerstruktur an</tip>
		<icon1>#play2</icon1>
		<function type="normal">
			<instruction>Rename FILEINFO PATTERN &quot;*.mp3&quot;  TO &quot;{mp3artist}\{mp3album}\{mp3track|#2} {mp3title}.mp3&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" separate="yes" textcol="none">
		<label>MP3&apos;s nach &quot;Eigene Musik&quot; sortieren</label>
		<tip>Benennt MP3&apos;s nach ID3-Tags um, legt eine Ordnerstruktur an, verschiebt alles nach &quot;Eigene Musik\Alben&quot; und zeigt den Ordner des Albums im Ziellister (Dualpath) an.</tip>
		<icon1>#script</icon1>
		<function type="batch">
			<instruction>@noexpandenv</instruction>
			<instruction>@runmode hide</instruction>
			<instruction>@set OriginalSource={sourcepath$|noterm}</instruction>
			<instruction>Rename FILEINFO FROM &quot;*.mp3&quot; TO &quot;{alias|mymusic\Alben}\{mp3genre}\{mp3artist}\{mp3album}\{mp3track|#2} {mp3title}.mp3&quot;</instruction>
			<instruction>Copy MOVE * TO &quot;%RENAME_TARGET%&quot;</instruction>
			<instruction>Go PATH &quot;..&quot; DUALPATH &quot;%RENAME_TARGET%&quot;</instruction>
			<instruction>rmdir {$OriginalSource}</instruction>
			<instruction />
			<instruction>@script vbscript</instruction>
			<instruction>Option Explicit</instruction>
			<instruction />
			<instruction>Dim fs</instruction>
			<instruction>Set fs = CreateObject(&quot;Scripting.FileSystemObject&quot;)</instruction>
			<instruction />
			<instruction>Dim Shell</instruction>
			<instruction>Set Shell = CreateObject(&quot;WScript.Shell&quot;)</instruction>
			<instruction />
			<instruction>Dim EnvVars</instruction>
			<instruction>Set EnvVars = Shell.Environment(&quot;PROCESS&quot;)</instruction>
			<instruction>EnvVars(&quot;RENAME_TARGET&quot;) = &quot;zzzzz:\&quot;</instruction>
			<instruction />
			<instruction>Function Rename_GetNewName(strFileName, strFilePath, fIsFolder, strOldName, ByRef strNewName)</instruction>
			<instruction />
			<instruction>   &apos; Fix any double \ chars resulting from empty tags (e.g. no genre).</instruction>
			<instruction>   &apos; If we don&apos;t do this, things can get confused about the destination path.</instruction>
			<instruction />
			<instruction>   strNewName = Replace(strNewName, &quot;\\&quot;, &quot;\&quot;)</instruction>
			<instruction />
			<instruction>   &apos; Set the %RENAME_TARGET% environment variable to the folder we&apos;re moving the file to.</instruction>
			<instruction>   &apos; This can be used in the main command above to go to the folder.</instruction>
			<instruction>   &apos; Note that we use &quot;@noexpandenv&quot; at the top of the command; if we didn&apos;t then %RENAME_TARGET%</instruction>
			<instruction>   &apos; would be expanded *before* this script had run, which obviously would not work.</instruction>
			<instruction />
			<instruction>   EnvVars(&quot;RENAME_TARGET&quot;) = fs.GetParentFolderName(strNewName)</instruction>
			<instruction />
			<instruction>End Function</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>JPG&apos;s nach &quot;Name Datum - Zeit&quot;&quot;</label>
		<tip>Hängt an Dateinamen von JPG&apos;s  Aufnahmedatum und Zeit an</tip>
		<icon1>#image</icon1>
		<function type="normal">
			<instruction>Rename FILEINFO CASE=extlower PATTERN=&quot;*.*&quot; TO=&quot;* {shootingtime|D#ddd dd.MM.yyyy} - {shootingtime|T#HH-mm-ss}.*&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>JPG&apos;s nach &quot; Datum-Zeit [Eingabe]&quot;&quot;</label>
		<tip>Ändert  Dateinamen nach Aufnahmedatum -zeit Text aus Eingabe um</tip>
		<icon1>#image</icon1>
		<function type="script">
			<instruction>@script VBScript</instruction>
			<instruction>Function OnClick(ClickData)</instruction>
			<instruction>    DOpus.vars.Set &quot;last&quot;, &quot;&quot;</instruction>
			<instruction>    ClickData.Func.Command.ClearFiles</instruction>
			<instruction>    ClickData.Func.Command.AddFile ClickData.func.command.sourcetab.selected(0)</instruction>
			<instruction>   Call Checkdate(ClickData)</instruction>
			<instruction>End Function</instruction>
			<instruction />
			<instruction>Sub Checkdate(ClickData)</instruction>
			<instruction>   If ClickData.func.command.sourcetab.selected(0).Metadata.image.datetaken = &quot;&quot; Then</instruction>
			<instruction>       Set dlg = ClickData.Func.Dlg</instruction>
			<instruction>         dlg.title = &quot;Aufnahmedatum fehlt!&quot;</instruction>
			<instruction>         dlg.message = &quot;Aufnahmedatum eingeben im Format: YYYYMMDD HHMMSS&quot;</instruction>
			<instruction>      dlg.max = 19</instruction>
			<instruction>         dlg.buttons = &quot;OK|Erstellt|Geändert|Aktuell|Abbrechen&quot;</instruction>
			<instruction>         i = dlg.show</instruction>
			<instruction />
			<instruction>      If i = 1 Then</instruction>
			<instruction>            ClickData.Func.Command.RunCommand(&quot;SetAttr META &quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;datetaken:&quot; &amp; dlg.input &amp; &quot;&quot;&quot;&quot;)</instruction>
			<instruction>      End If</instruction>
			<instruction>      </instruction>
			<instruction>      If i = 2 Then</instruction>
			<instruction>            ClickData.Func.Command.RunCommand(&quot;SetAttr META datetaken:createdate&quot;)</instruction>
			<instruction>      End If</instruction>
			<instruction />
			<instruction>      If i = 3 Then</instruction>
			<instruction>            ClickData.Func.Command.RunCommand(&quot;SetAttr META datetaken:modifydate&quot;)</instruction>
			<instruction>      End If</instruction>
			<instruction />
			<instruction>      If i = 4 Then</instruction>
			<instruction>            ClickData.Func.Command.RunCommand(&quot;SetAttr META &quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;datetaken:&quot; &amp; Year(Now) &amp; &quot;-&quot; &amp; Month(Now) &amp; &quot;-&quot; &amp; Day(Now) &amp; &quot; &quot; &amp; Time &amp; &quot;&quot;&quot;&quot;)</instruction>
			<instruction>      End If</instruction>
			<instruction>   End If</instruction>
			<instruction>   ClickData.Func.Command.RunCommand(&quot;Go Refresh&quot;)</instruction>
			<instruction>   ClickData.Func.Command.RunCommand(&quot;Select {file} EXACT DESELECTNOMATCH&quot;)</instruction>
			<instruction>    Call Edit(ClickData)</instruction>
			<instruction>End Sub</instruction>
			<instruction />
			<instruction>Sub Edit(ClickData)</instruction>
			<instruction>    Set dlg = ClickData.Func.Dlg</instruction>
			<instruction>    dlg.message = &quot;Dateinamenszusatz eingeben:&quot;</instruction>
			<instruction>    dlg.title = &quot;Bilder umbenennen&quot;</instruction>
			<instruction>    dlg.buttons = &quot;OK|Überspringen|Abbrechen&quot;</instruction>
			<instruction>    dlg.max = 512</instruction>
			<instruction>   dlg.default = DOpus.vars.Get(&quot;last&quot;)</instruction>
			<instruction>    i = dlg.show</instruction>
			<instruction>    DOpus.vars.Set &quot;last&quot;, dlg.Input</instruction>
			<instruction />
			<instruction>    If i = 1 Then</instruction>
			<instruction>      ClickData.Func.Command.RunCommand(&quot;Select NEXT&quot;)</instruction>
			<instruction>         ClickData.Func.Command.RunCommand(&quot;Rename FILEINFO CASE=extlower PATTERN=&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;*.*&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot; TO=&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;{shootingtime|D#yyyy-MM-dd} [{shootingtime|T#HH-mm-ss}] &quot; &amp; dlg.Input &amp; &quot;.{ext}&quot; &amp; &quot;&quot;&quot;&quot;)</instruction>
			<instruction>        Call EditNext(ClickData)</instruction>
			<instruction>    End If</instruction>
			<instruction>   </instruction>
			<instruction>    If i = 2 Then</instruction>
			<instruction>       ClickData.Func.Command.RunCommand(&quot;Select NEXT&quot;)</instruction>
			<instruction>        Call EditNext(ClickData)</instruction>
			<instruction>    End If</instruction>
			<instruction>   </instruction>
			<instruction>    If i = 0 Then</instruction>
			<instruction>        Exit Sub</instruction>
			<instruction>    End If</instruction>
			<instruction>End Sub</instruction>
			<instruction />
			<instruction>Sub EditNext(ClickData)</instruction>
			<instruction>    ClickData.Func.Command.ClearFiles</instruction>
			<instruction>   ClickData.func.command.sourcetab.Update</instruction>
			<instruction>    For Each item In ClickData.func.command.sourcetab.selected</instruction>
			<instruction>        If item.selected = True Then</instruction>
			<instruction>            ClickData.Func.Command.Addfile item</instruction>
			<instruction>        End If</instruction>
			<instruction>    Next</instruction>
			<instruction>    Call Checkdate(ClickData)</instruction>
			<instruction>End Sub</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>JPG&apos;s nach &quot;Nummer Ordner Datum - Zeit&quot;</label>
		<tip>Benennt JPG&apos;s nach dem übergeordneten Ordner und hängt Aufnahmedatum und Zeit an</tip>
		<icon1>#image</icon1>
		<function type="normal">
			<instruction>@nodeselect </instruction>
			<instruction>@set Start={dlgstring|Nummer der ersten Datei (durch führende Nullen Anzahl der Stellen definieren):|0}</instruction>
			<instruction>Rename FILEINFO CASE=extlower NUMBER={$Start} BY=1 REGEXP PATTERN=&quot;(.*)\.(.*)&quot; TO=&quot;[#] {parent} {shootingtime|D#ddd dd.MM.yyyy} - {shootingtime|T#HH-mm-ss}.\2&quot;</instruction>
			<instruction>Rename REGEXP PATTERN=&quot;(.+) ([0-9]+) (.+)&quot; TO=&quot;\1 \3&quot;</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>Datum - Titel - Nummer</label>
		<tip>Benennt Dateien nach Datum - Titel - Nummer - Erweiterung um</tip>
		<icon1>#image</icon1>
		<function type="normal">
			<instruction>Rename FILEINFO NUMBER TO &quot;{datetaken|D#yyyy-MM-dd} {dlgstring|festen Titel eingeben:} [#3] .{ext}</instruction>
		</function>
	</button>
</button>

MfG

josinoro

Maui
Beiträge: 63
Registriert: 7. Mär 2019 19:37
Betriebssystem: Windows 10 Pro
Produkt: Opus 12
Version DOpus: Pro

Re: Dateinamen von Foto umbenennen

Beitrag von Maui » 2. Okt 2019 05:59

Vielen Dank,
ist zwar für Audio Dateien, aber trotztem auch sehr hilfreich.

Benutzeravatar
tbone
Berater
Beiträge: 572
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Dateinamen von Foto umbenennen

Beitrag von tbone » 2. Okt 2019 09:15

Die Keywords die DO unterstützt findest Du hier:
https://www.gpsoft.com.au/help/opus12/i ... ommand.htm

Maui
Beiträge: 63
Registriert: 7. Mär 2019 19:37
Betriebssystem: Windows 10 Pro
Produkt: Opus 12
Version DOpus: Pro

Re: Dateinamen von Foto umbenennen

Beitrag von Maui » 2. Okt 2019 13:23

Danke, genau das was ich gesucht hatte.

Aber eine kurze info hätte ich noch gerne.
Ich möchte Fotos anhand des Erstellungsdatum aus den Exif-Daten welches die Kamera schreibt.

Beim verschieben oder kopieren von Dateien wird das Erstellungsdatum als das angesehen wenn eine Datei von einem in einem anderen Kopiert wird.
Beispiel die Kamera nimmt ein Bild auf am 01.10.2010. Kopiere oder verschiebe ich das Bild am 20.02.2019 dann erhält die Datei als Erstellungsdatum 20.02.2019. Daher muss ich aufpassen, das ich die richtigen Werte (Exif) nehme.

Bin mit jetzt nicht sicher welche Daten hinter folgenden Variablen liegen
Bild-Metadata:
Aufnahmedatum
Digitalisierungsdatum

Danke
M

Maui
Beiträge: 63
Registriert: 7. Mär 2019 19:37
Betriebssystem: Windows 10 Pro
Produkt: Opus 12
Version DOpus: Pro

Re: Dateinamen von Foto umbenennen

Beitrag von Maui » 2. Okt 2019 16:06

Ich möchte Fotos mit dem EXIF-Datum umbenennen.
Alter Name: *
Neuer Name: {datetigitized}

Ich erhalte dann folende ausgabe
2012-08-31 08;38;50

Ich hätte aber gerne eine Ausgabe die wie folgt aussieht:
2012-08-31um08-38-50

Aktuell mache ich es mit ACDSee Pro aber das Programm ist so Fehlerhaft.
Es stürzt ständig ab, benennt png und andere Dateien nicht mit dem Datum obwohl es verfügbar ist.

Benutzeravatar
tbone
Berater
Beiträge: 572
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64
Produkt: aktuelle Beta-Version
Version DOpus: Pro

Re: Dateinamen von Foto umbenennen

Beitrag von tbone » 2. Okt 2019 16:41

Wenn Du die Werte nicht direkt und unverändert als Teil des Dateinamens gebrauchen kannst, hilft nur ein RenameScript.
Guck dazu mal in die Doku, da gibt es m.M. direkt ein Beispiel dafür.

Und vll guckst Du auch mal hier durch und kannst am Script etwas anpassen (das ist aber kein RenameScript, sondern ein normales).
https://www.haage-partner.de/forum/view ... =47&t=5172

Antworten