Schalter-Sammlung: (mehrfaches) Umbenennen
-
- Beiträge: 83
- Registriert: 12. Apr 2010 07:23
- Betriebssystem: Windows 7 Home 64bit
- Produkt: DOpus 11.3
- Version DOpus: Pro
Schalter-Sammlung: (mehrfaches) Umbenennen
Die Icons müssen nach C:\ kopiert, oder der CODE dementsprechend angepasst werden.
Es sind fast alle CODEs aus dem folgenden zweiten Beitrag enthalten.
JÖRG (Windows7 und DOpus 9.53)
- Dateianhänge
-
- Menü-Schalter (Umbennenen) NEU.zip
- (45.93 KiB) 517-mal heruntergeladen
-
- Beiträge: 83
- Registriert: 12. Apr 2010 07:23
- Betriebssystem: Windows 7 Home 64bit
- Produkt: DOpus 11.3
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Wie bekomme ich diese CODEs in einen neuen Schalter ?
- Einstellungen - Anpassen...
- rechte Maustaste auf Symbolleiste
- Neu - Neuer Schalter
- rechte Maustaste auf Neuer Schalter
- Bearbeiten...
- Erweitert...
- CODE hineinkopieren
- OK
Die Datei-Attribute "Erstellt am" und "Geändert am" in das aktuelle Datum ändern
HINWEIS: Für die internationale Schreibweise (2010-05-14) muß man das (dd. MMM yyyy) durch (yyyy-MM-dd) ersetzen
Code: Alles auswählen
SetAttr CREATED=now
SetAttr MODIFIED=now
@NODESELECT
HINWEIS: Für die internationale Schreibweise (2010-05-14) muß man das (dd. MMM yyyy) durch (yyyy-MM-dd) ersetzen
Code: Alles auswählen
SetAttr CREATED="2008-04-04 18:05:56"
SetAttr MODIFIED="2008-04-04 18:05:56"
@NODESELECT
HINWEIS: Für die internationale Schreibweise (2010-05-14) muß man das (dd. MMM yyyy) durch (yyyy-MM-dd) ersetzen
Code: Alles auswählen
Rename TYPE=files PATTERN "*.*" TO "* {date|(dd. MMM yyyy)}.*" AUTORENAME
Rename TYPE=dirs PATTERN "*" TO "* {date|(dd. MMM yyyy)}" AUTORENAME
@NODESELECT
HINWEIS: Für die internationale Schreibweise (2010-05-14) muß man das (dd. MMM yyyy) durch (yyyy-MM-dd) ersetzen
Code: Alles auswählen
Rename TYPE=files PATTERN "*.*" TO "* {date|(dd. MMM yyyy} {time|HH.mm)}.*" AUTORENAME
Rename TYPE=dirs PATTERN "*" TO "* {date|(dd. MMM yyyy} {time|HH.mm)}" AUTORENAME
@NODESELECT
HINWEIS: Für das Datum (Geändert am) muß man das created durch modified ersetzen
Code: Alles auswählen
Rename TYPE=files PATTERN "*.*" TO "* {created|D#(dd. MMM yyyy)}.*" FILEINFO AUTORENAME
Rename TYPE=dirs PATTERN "*" TO "* {created|D#(dd. MMM yyyy)}" FILEINFO AUTORENAME
@NODESELECT
HINWEIS: Für das Datum (Geändert am) muß man das created durch modified ersetzen
Code: Alles auswählen
Rename TYPE=files PATTERN "*.*" TO "* {created|D#(dd. MMM yyyy T#HH.mm)}.*" FILEINFO AUTORENAME
Rename TYPE=dirs PATTERN "*" TO "* {created|D#(dd. MMM yyyy T#HH.mm)}" FILEINFO AUTORENAME
@NODESELECT
Erklärung: BY=1 erhöht die Nummerierung immer um eine Stelle
Code: Alles auswählen
@set X={dlgstring|Nummerierung beginnen mit|01}
Rename TYPE=files NUMBER={$X} BY=1 REGEXP PATTERN="(.*)(\..*)" TO="[#]\2"
Rename TYPE=dirs NUMBER={$X} BY=1 PATTERN="*" TO="[#]"
@NODESELECT
Erklärung: BY=1 erhöht die Nummerierung immer um eine Stelle
Code: Alles auswählen
@set X={dlgstring|Nummerierung beginnen mit|01}
Rename TYPE=files NUMBER={$X} BY=1 REGEXP PATTERN="(.*)(\..*)" TO="[#] \1\2"
Rename TYPE=dirs NUMBER={$X} BY=1 PATTERN="*" TO="[#] *"
@NODESELECT
HINWEIS: Hier kann man die Stelle und den neuen Text direkt in EINEM Eingabefenster eingeben
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="icon" textcol="none" type="menu">
<label>Zeichen Einfügen/Entfernen</label>
<tip>Zeichen Einfügen/Entfernen</tip>
<icon1>#script</icon1>
<button backcol="none" display="both" textcol="none">
<label>Zeichen an Position von Vorne</label>
<tip>Zeichen an gewählter Position von Vorne einfügen</tip>
<icon1>#default:script</icon1>
<function type="normal">
<instruction>Rename TO="{DlgStringS|AN welcher Stelle soll eingefügt werden ?\n\ndurch ein Komma getrennt\n\nWAS soll eingefügt werden ?|2,Neuer Text}" AUTORENAME</instruction>
<instruction>@nodeselect </instruction>
<instruction />
<instruction>@script vbscript</instruction>
<instruction>option explicit</instruction>
<instruction />
<instruction>Function Rename_GetNewName ( strFileName, strFullPath, fIsFolder, strOldName, ByRef strNewName )</instruction>
<instruction />
<instruction> Dim strNameOnly</instruction>
<instruction> Dim strExtension</instruction>
<instruction> Dim intComPos ' Location of the leftmost comma in dialog box entry</instruction>
<instruction> Dim strText ' Extracted Text from dialog box entry</instruction>
<instruction> Dim strCount ' Extracted number (of places from left) from dialog box entry</instruction>
<instruction />
<instruction> ' If we're renaming a file then remove the extension from the end and save it for later.</instruction>
<instruction> if fIsFolder or 0 = InStr(strFileName,".") then</instruction>
<instruction> strExtension = ""</instruction>
<instruction> strNameOnly = strFileName</instruction>
<instruction> else</instruction>
<instruction> strExtension = Right(strFileName, Len(strFileName)-(InStrRev(strFileName,".")-1))</instruction>
<instruction> strNameOnly = Left(strFileName, InStrRev(strFileName,".")-1)</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> ' Find the leftmost comma</instruction>
<instruction> intComPos = InStr(strNewName,",")</instruction>
<instruction> if intComPos > 0 then</instruction>
<instruction> strCount = Trim(Left(strNewName, intComPos-1))</instruction>
<instruction> strText = Right(strNewName,Len(strNewName)-intComPos)</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> Dim I</instruction>
<instruction> Dim Dots</instruction>
<instruction> Dots = "" </instruction>
<instruction />
<instruction> if CInt(strCount) > 0 then</instruction>
<instruction> I = 1</instruction>
<instruction> While I < CInt(strCount)</instruction>
<instruction> Dots = Dots & "."</instruction>
<instruction> I = I+1</instruction>
<instruction> Wend</instruction>
<instruction> Dots = "(^" & Dots & ")"</instruction>
<instruction> else</instruction>
<instruction> ' Character position was not more than 0 - set LeftDots to an invalid value so rename fails</instruction>
<instruction> Dots = "(8SCaO4fOzy5hy4Fs2CxBGCPy6oAl2Hp988ZH9C3toox0HWlmOA)"</instruction>
<instruction> end if</instruction>
<instruction> </instruction>
<instruction> Dim regex</instruction>
<instruction> ' Create a RegExp object</instruction>
<instruction> Set regex = new RegExp</instruction>
<instruction> regex.Pattern = Dots & "(.*)"</instruction>
<instruction> </instruction>
<instruction> strNameOnly = regex.Replace(strNameOnly, "$1" & strText & "$2")</instruction>
<instruction> strNewName = strNameOnly & strExtension</instruction>
<instruction />
<instruction> End Function </instruction>
</function>
</button>
</button>
HINWEIS: Hier kann man die Stelle und den neuen Text direkt in EINEM Eingabefenster eingeben
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="both" separate="yes" textcol="none">
<label>Zeichen an Position von Hinten</label>
<tip>Zeichen an gewählter Position von Hinten einfügen</tip>
<icon1>#default:script</icon1>
<function type="normal">
<instruction>Rename TO="{DlgStringS|AN welcher Stelle soll eingefügt werden ?\n\ndurch ein Komma getrennt\n\nWAS soll eingefügt werden ?|2,Neuer Text}" AUTORENAME</instruction>
<instruction>@nodeselect </instruction>
<instruction />
<instruction>@script vbscript</instruction>
<instruction>option explicit</instruction>
<instruction />
<instruction>Function Rename_GetNewName ( strFileName, strFullPath, fIsFolder, strOldName, ByRef strNewName )</instruction>
<instruction />
<instruction> Dim strNameOnly</instruction>
<instruction> Dim strExtension</instruction>
<instruction> Dim intComPos ' Location of the leftmost comma in dialog box entry</instruction>
<instruction> Dim strText ' Extracted Text from dialog box entry</instruction>
<instruction> Dim strCount ' Extracted number (of places from left) from dialog box entry</instruction>
<instruction />
<instruction> ' If we're renaming a file then remove the extension from the end and save it for later.</instruction>
<instruction> if fIsFolder or 0 = InStr(strFileName,".") then</instruction>
<instruction> strExtension = ""</instruction>
<instruction> strNameOnly = strFileName</instruction>
<instruction> else</instruction>
<instruction> strExtension = Right(strFileName, Len(strFileName)-(InStrRev(strFileName,".")-1))</instruction>
<instruction> strNameOnly = Left(strFileName, InStrRev(strFileName,".")-1)</instruction>
<instruction> end if</instruction>
<instruction />
<instruction />
<instruction> ' Find the leftmost comma</instruction>
<instruction> intComPos = InStr(strNewName,",")</instruction>
<instruction> if intComPos > 0 then</instruction>
<instruction> strCount = Trim(Left(strNewName, intComPos-1))</instruction>
<instruction> strText = Right(strNewName,Len(strNewName)-intComPos)</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> Dim I</instruction>
<instruction> Dim Dots</instruction>
<instruction> Dots = "" </instruction>
<instruction> </instruction>
<instruction> if CInt(strCount) > 0 then</instruction>
<instruction> I = 1</instruction>
<instruction> While I < CInt(strCount)</instruction>
<instruction> Dots = "." & Dots</instruction>
<instruction> I = I+1</instruction>
<instruction> Wend</instruction>
<instruction> Dots = "(" & Dots & ")"</instruction>
<instruction> else</instruction>
<instruction> ' Character position was not more than 0 - set LeftDots to an invalid value so rename fails</instruction>
<instruction> Dots = "(8SCaO4fOzy5hy4Fs2CxBGCPy6oAl2Hp988ZH9C3toox0HWlmOA)"</instruction>
<instruction> end if</instruction>
<instruction> </instruction>
<instruction> Dim regex</instruction>
<instruction> ' Create a RegExp object</instruction>
<instruction> Set regex = new RegExp</instruction>
<instruction> regex.Pattern = "(.*)" & Dots </instruction>
<instruction> strNameOnly = regex.Replace(strNameOnly, "$1" & strText & "$2") '</instruction>
<instruction> strNewName = strNameOnly & strExtension</instruction>
<instruction> </instruction>
<instruction>End Function </instruction>
</function>
</button>
</button>
HINWEIS: Hier kann man die Stelle und die Anzahl direkt in EINEM Eingabefenster eingeben
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>Anzahl Zeichen an Position von Vorne</label>
<tip>Anzahl Zeichen an gewählter Position von Vorne entfernen</tip>
<icon1>#default:script</icon1>
<function type="normal">
<instruction>Rename TO="{DlgStringS|AN welcher Stelle soll entfernt werden ?\n\ndurch ein Komma getrennt\n\nWIEVIELE Stellen sollen entfernt werden ?|2,5}" AUTORENAME</instruction>
<instruction>@nodeselect</instruction>
<instruction>@script vbscript</instruction>
<instruction>option explicit</instruction>
<instruction />
<instruction>Function Rename_GetNewName ( strFileName, strFullPath, fIsFolder, strOldName, ByRef strNewName )</instruction>
<instruction />
<instruction> Dim strNameOnly</instruction>
<instruction> Dim strExtension</instruction>
<instruction> Dim intComPos ' Location of the leftmost comma in dialog box entry</instruction>
<instruction> Dim strLeftNum ' Extracted left number from dialog box entry</instruction>
<instruction> Dim strRightNum ' Extracted right number from dialog box entry</instruction>
<instruction />
<instruction> ' If we're renaming a file then remove the extension from the end and save it for later.</instruction>
<instruction> if fIsFolder or 0 = InStr(strFileName,".") then</instruction>
<instruction> strExtension = ""</instruction>
<instruction> strNameOnly = strFileName</instruction>
<instruction> else</instruction>
<instruction> strExtension = Right(strFileName, Len(strFileName)-(InStrRev(strFileName,".")-1))</instruction>
<instruction> strNameOnly = Left(strFileName, InStrRev(strFileName,".")-1)</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> ' Find the leftmost comma in dialog box entry</instruction>
<instruction> intComPos = InStr(strNewName,",")</instruction>
<instruction />
<instruction> ' Extract the 2 numbers from dialog box entry</instruction>
<instruction> if intComPos > 0 then</instruction>
<instruction> strLeftNum = CInt(Trim(Left(strNewName, intComPos-1)))</instruction>
<instruction> strRightNum = CInt(Trim(Right(strNewName,Len(strNewName)-intComPos)))</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> Dim I ' General counter variable</instruction>
<instruction> Dim LeftDots ' LeftDots will become the first RegEx tagged match</instruction>
<instruction> LeftDots = "" ' Set LeftDots to a null value to start</instruction>
<instruction />
<instruction> ' Assemble LEFT regEx dots ----------------------------------------</instruction>
<instruction> if strLeftNum > 0 then</instruction>
<instruction> I = 1</instruction>
<instruction> While I < strLeftNum</instruction>
<instruction> LeftDots = LeftDots & "."</instruction>
<instruction> I = I+1</instruction>
<instruction> Wend</instruction>
<instruction> LeftDots = "(^" & LeftDots & ")"</instruction>
<instruction> else</instruction>
<instruction> ' Character position was not more than 0 - set LeftDots to an invalid value so rename fails</instruction>
<instruction> LeftDots = "(8SCaO4fOzy5hy4Fs2CxBGCPy6oAl2Hp988ZH9C3toox0HWlmOA)"</instruction>
<instruction> end if</instruction>
<instruction> ' ----------------------------------------------------------------------------------------</instruction>
<instruction />
<instruction> Dim ExtractAmt ' ExtractAmt will be the number of characters to remove from the file name</instruction>
<instruction> ExtractAmt = strRightNum</instruction>
<instruction />
<instruction> ' Assemble EXTRACTION dots ----------------------------------------</instruction>
<instruction> Dim ExtractDots ' ExtractDots will become the second RegEx tagged match</instruction>
<instruction> ExtractDots = "" ' Set ExtractDots to a null value to start</instruction>
<instruction> I = 0</instruction>
<instruction> if ExtractAmt > 0 then</instruction>
<instruction> While I < ExtractAmt</instruction>
<instruction> ExtractDots = ExtractDots & "."</instruction>
<instruction> I = I+1</instruction>
<instruction> Wend</instruction>
<instruction> ExtractDots = "(" & ExtractDots & ")"</instruction>
<instruction> else</instruction>
<instruction> ' Amount to extract was not more than 0 - set ExtractDots to an invalid value so rename fails</instruction>
<instruction> ExtractDots = "(loY8TbEarTKFM5jKdd6pOoqAtm8ptx1zN2lx0ooB)"</instruction>
<instruction> end if</instruction>
<instruction> ' ----------------------------------------------------------------------------------------</instruction>
<instruction />
<instruction> Dim regex</instruction>
<instruction> ' Create a RegExp object</instruction>
<instruction> Set regex = new RegExp</instruction>
<instruction> regex.Pattern = LeftDots & ExtractDots & "(.*)"</instruction>
<instruction> </instruction>
<instruction> strNameOnly = regex.Replace(strNameOnly, "$1$3")</instruction>
<instruction> strNewName = strNameOnly & strExtension</instruction>
<instruction> </instruction>
<instruction> End Function</instruction>
</function>
</button>
</button>
HINWEIS: Hier kann man die Stelle und die Anzahl direkt in EINEM Eingabefenster eingeben
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>Anzahl Zeichen an Position von Hinten</label>
<tip>Anzahl Zeichen an gewählter Position von Hinten entfernen</tip>
<icon1>#default:script</icon1>
<function type="normal">
<instruction>Rename TO="{DlgStringS|AN welcher Stelle soll entfernt werden ?\n\ndurch ein Komma getrennt\n\nWIEVIELE Stellen sollen entfernt werden ?|2,5}" AUTORENAME</instruction>
<instruction>@nodeselect</instruction>
<instruction>@script vbscript</instruction>
<instruction>option explicit</instruction>
<instruction />
<instruction>Function Rename_GetNewName ( strFileName, strFullPath, fIsFolder, strOldName, ByRef strNewName )</instruction>
<instruction />
<instruction> Dim strNameOnly</instruction>
<instruction> Dim strExtension</instruction>
<instruction> Dim intComPos ' Location of the leftmost comma in dialog box entry</instruction>
<instruction> Dim strLeftNum ' Extracted left number from dialog box entry</instruction>
<instruction> Dim strRightNum ' Extracted right number from dialog box entry</instruction>
<instruction />
<instruction> ' If we're renaming a file then remove the extension from the end and save it for later.</instruction>
<instruction> if fIsFolder or 0 = InStr(strFileName,".") then</instruction>
<instruction> strExtension = ""</instruction>
<instruction> strNameOnly = strFileName</instruction>
<instruction> else</instruction>
<instruction> strExtension = Right(strFileName, Len(strFileName)-(InStrRev(strFileName,".")-1))</instruction>
<instruction> strNameOnly = Left(strFileName, InStrRev(strFileName,".")-1)</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> ' Find the leftmost comma in dialog box entry</instruction>
<instruction> intComPos = InStr(strNewName,",")</instruction>
<instruction />
<instruction> ' Extract the 2 numbers from dialog box entry</instruction>
<instruction> if intComPos > 0 then</instruction>
<instruction> strLeftNum = CInt(Trim(Left(strNewName, intComPos-1)))</instruction>
<instruction> strRightNum = CInt(Trim(Right(strNewName,Len(strNewName)-intComPos)))</instruction>
<instruction> end if</instruction>
<instruction />
<instruction> Dim I ' General counter variable</instruction>
<instruction> Dim LeftDots ' LeftDots will become the first RegEx tagged match</instruction>
<instruction> LeftDots = "" ' Set LeftDots to a null value to start</instruction>
<instruction />
<instruction> ' Assemble LEFT regEx dots ----------------------------------------</instruction>
<instruction> if strLeftNum > 0 then</instruction>
<instruction> I = 1</instruction>
<instruction> While I < strLeftNum</instruction>
<instruction> LeftDots = "." & LeftDots</instruction>
<instruction> I = I+1</instruction>
<instruction> Wend</instruction>
<instruction> LeftDots = "(" & LeftDots & ")"</instruction>
<instruction> else</instruction>
<instruction> ' Character position was not more than 0 - set LeftDots to an invalid value so rename fails</instruction>
<instruction> LeftDots = "(8SCaO4fOzy5hy4Fs2CxBGCPy6oAl2Hp988ZH9C3toox0HWlmOA)"</instruction>
<instruction> end if</instruction>
<instruction> ' ----------------------------------------------------------------------------------------</instruction>
<instruction />
<instruction> Dim ExtractAmt ' ExtractAmt will be the number of characters to remove from the file name</instruction>
<instruction> ExtractAmt = strRightNum</instruction>
<instruction />
<instruction> ' Assemble EXTRACTION dots ----------------------------------------</instruction>
<instruction> Dim ExtractDots ' ExtractDots will become the second RegEx tagged match</instruction>
<instruction> ExtractDots = "" ' Set ExtractDots to a null value to start</instruction>
<instruction> I = 0</instruction>
<instruction> if ExtractAmt > 0 then</instruction>
<instruction> While I < ExtractAmt</instruction>
<instruction> ExtractDots = "." & ExtractDots</instruction>
<instruction> I = I+1</instruction>
<instruction> Wend</instruction>
<instruction> ExtractDots = "(" & ExtractDots & ")"</instruction>
<instruction> else</instruction>
<instruction> ' Amount to extract was not more than 0 - set ExtractDots to an invalid value so rename fails</instruction>
<instruction> ExtractDots = "(loY8TbEarTKFM5jKdd6pOoqAtm8ptx1zN2lx0ooB)"</instruction>
<instruction> end if</instruction>
<instruction> ' ----------------------------------------------------------------------------------------</instruction>
<instruction />
<instruction> Dim regex</instruction>
<instruction> ' Create a RegExp object</instruction>
<instruction> Set regex = new RegExp</instruction>
<instruction />
<instruction> 'if fIsFolder = True then ' If it's a folder ---------------------------------------</instruction>
<instruction> regex.Pattern = "(.*)" & ExtractDots & LeftDots</instruction>
<instruction> 'else ' If it's a file -----------------------------------------</instruction>
<instruction> 'regex.Pattern = LeftDots & ExtractDots & "(.*\..*)"</instruction>
<instruction> 'end if</instruction>
<instruction />
<instruction> strNameOnly = regex.Replace(strNameOnly, "$1$3") '</instruction>
<instruction> strNewName = strNameOnly & strExtension</instruction>
<instruction> </instruction>
<instruction>End Function</instruction>
</function>
</button>
</button>
ERKLÄRUNG: TEMPNAME ist ein Platzhalter der durch die gewünschten neuen Zeichen ersetzt wird.
Code: Alles auswählen
@set X = {dlgstring|NACH welcher Stelle soll eingefügt werden ?}
Rename REGEXP PATTERN "(.)(.+)#{$X}" TO "\2\1" AUTORENAME
Rename PATTERN "*" TO "TEMPNAME*" AUTORENAME
Select TEMPNAME*
Rename REGEXP PATTERN "(.+)(.)#{$X}" TO "\2\1" AUTORENAME
Rename FINDREP PATTERN "TEMPNAME" TO "{dlgstring|WAS soll eingefügt werden ?}" AUTORENAME
@NODESELECT
ERKLÄRUNG: TEMPNAME ist ein Platzhalter der durch die gewünschten neuen Zeichen ersetzt wird.
Code: Alles auswählen
@set X = {dlgstring|VOR welcher Stelle soll eingefügt werden ?}
Rename TYPE=files REGEXP PATTERN "(.+)(.)(\..*)#{$X}" TO "\2\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.+)(.)#{$X}" TO "\2\1" AUTORENAME
Rename TYPE=files PATTERN "*.*" TO "*TEMPNAME.*" AUTORENAME
Rename TYPE=dirs Pattern "*" TO "*TEMPNAME" AUTORENAME
Select *TEMPNAME
Rename TYPE=files REGEXP PATTERN "(.)(.+)(\..*)#{$X}" TO "\2\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.)(.+)#{$X}" TO "\2\1" AUTORENAME
Rename FINDREP PATTERN "TEMPNAME" TO "{dlgstring|WAS soll eingefügt werden ?}" AUTORENAME
@NODESELECT
Code: Alles auswählen
@set X = {dlgstring|NACH welcher Stelle soll entfernt werden ?}
Rename REGEXP PATTERN "(.)(.+)#{$X}" TO "\2\1" AUTORENAME
Rename PATTERN "*" TO "TEMPNAME*" AUTORENAME
Select TEMPNAME*
Rename REGEXP PATTERN "(........).(.+)#{dlgstring|Wieviele Stellen sollen entfernt werden ?}" TO "\1\2" AUTORENAME
Rename PATTERN "*" TO "TEMPNAME*" AUTORENAME
Select TEMPNAME*
Rename REGEXP PATTERN "(.+)(.)#{$X}" TO "\2\1" AUTORENAME
Rename FINDREP PATTERN "TEMPNAME" TO "\~" AUTORENAME
@NODESELECT
Code: Alles auswählen
@set X = {dlgstring|VOR welcher Stelle soll entfernen ?}
@set Y = {dlgstring|WIEVIELE Stellen sollen entfernt werden ?}
Rename TYPE=files REGEXP PATTERN "(.+)(.)(\..*)#{$X}" TO "\2\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.+)(.)#{$X}" TO "\2\1" AUTORENAME
Rename TYPE=files PATTERN "*.*" TO "*TEMPNAME.*" AUTORENAME
Rename TYPE=dirs PATTERN "*" TO "*TEMPNAME" AUTORENAME
Select *TEMPNAME
Rename TYPE=files REGEXP PATTERN "(.+).(.*)(........)(\..*)#{$Y}" TO "\1\3\4\5" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.+).(.*)(........)#{$Y}" TO "\1\3\4" AUTORENAME
Select *TEMPNAME
Rename TYPE=files REGEXP PATTERN "(.)(.+)(\..*)#{$X}" TO "\2\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.)(.+)#{$X}" TO "\2\1" AUTORENAME
Rename FINDREP PATTERN "TEMPNAME" TO "\~" AUTORENAME
@NODESELECT
ERKLÄRUNG: @NODESELECT bewirkt, daß die Ordner und/oder Dateien nach dem Umbenennen markiert bleiben,
das ist in sofern relevant, daß man danach direkt den nächsten Schalter zum weiteren Umbenennen ansprechen kann.
Code: Alles auswählen
Rename PATTERN "*" TO "{dlgstring|Eingabe}*" AUTORENAME
@NODESELECT
ERKLÄRUNG: {dlgstring|Eingabe} öffnet ein Eingabefenster, in dem der Nutzer den gewünschten Neuen Namen eingeben kann.
Code: Alles auswählen
@set X = {dlgstring|Eingabe}
Rename TYPE=files PATTERN "*.*" TO "*{$X}.*" AUTORENAME
Rename TYPE=dirs Pattern "*" TO "*{$X}" AUTORENAME
@NODESELECT
ERKLÄRUNG: {dlgstring|Eingabe} Eingabe ist hier nur der Titel im Eingabefenster, läßt sich also einfach durch alles ersetzen.
Code: Alles auswählen
Rename FINDREP PATTERN "{dlgstring|Eingabe suchen}" TO "{dlgstring|Eingabe ersetzen}" AUTORENAME
@NODESELECT
ERKLÄRUNG: "\~" steht sozusagen für nichts, ich glaube, man könnte auch einfach "" schreiben.
Code: Alles auswählen
Rename FINDREP PATTERN "{dlgstring|Eingabe suchen}" TO "\~" AUTORENAME
@NODESELECT
ERKLÄRUNG: Hiermit kann man z.B. einen Ordner, ein Bild und eine Textdatei gleichzeitig in einen Namen umbenennen.
Code: Alles auswählen
@set X = {dlgstring|Eingabe}
Rename TYPE=files REGEXP PATTERN ".*(\..*)" TO "{$X}\1" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN ".*" TO "{$X}\1" AUTORENAME
@NODESELECT
Code: Alles auswählen
Rename REGEXP PATTERN ".(.+)#{dlgstring|Anzahl}" TO "\1\2" AUTORENAME
@NODESELECT
Code: Alles auswählen
@set X = {dlgstring|Anzahl}
Rename TYPE=files REGEXP PATTERN "(.+).(.*)(\..*)#{$X}" TO "\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.+).(.*)#{$X}" TO "\1\3" AUTORENAME
@NODESELECT
Code: Alles auswählen
@set X = {dlgstring|Anzahl}
Rename TYPE=files REGEXP PATTERN "(.)(.+)(\..*)#{$X}" TO "\2\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.)(.+)#{$X}" TO "\2\1" AUTORENAME
@NODESELECT
Code: Alles auswählen
@set X = {dlgstring|Anzahl}
Rename TYPE=files REGEXP PATTERN "(.+)(.)(\..*)#{$X}" TO "\2\1\3" AUTORENAME
Rename TYPE=dirs REGEXP PATTERN "(.+)(.)#{$X}" TO "\2\1" AUTORENAME
@NODESELECT
ERKLÄRUNG: {dlgstring|Eingabe} öffnet ein Eingabefenster, in dem der Nutzer die gewünschte neue Dateiendung eingeben kann.
Code: Alles auswählen
Rename REGEXP PATTERN "(.*)(\..*)" TO "\1.{dlgstring|Eingabe}" AUTORENAME
@NODESELECT
HINWEIS: Durch das ändern von .cbr läßt sich hier jede andere Dateiendung einfügen.
Code: Alles auswählen
Rename REGEXP PATTERN "(.*)(\..*)" TO "\1.cbr" AUTORENAME
@NODESELECT
Code: Alles auswählen
Rename CASE=allwords
@NODESELECT
Code: Alles auswählen
Rename CASE=upper
@NODESELECT
Code: Alles auswählen
Rename CASE=lower
@NODESELECT
Code: Alles auswählen
Rename REGEXP PATTERN "(.*)(([^A-Z ])([A-Z]+))(.*)#" TO "\1\3 \4\5" MATCHCASE AUTORENAME
@NODESELECT
HINWEIS: Das läßt sich durch einfaches austauschen der Parameter auch auf alle anderen Zeichen anwenden !
Code: Alles auswählen
Rename FINDREP PATTERN "_" TO " " AUTORENAME
@NODESELECT
HINWEIS: Das läßt sich durch einfaches austauschen der Parameter auch auf alle anderen Zeichen anwenden !
Code: Alles auswählen
Rename FINDREP PATTERN " " TO "\~" AUTORENAME
@NODESELECT
Code: Alles auswählen
Rename REGEXP PATTERN "(.*)(([^0-9 ])([0-9]+)|([0-9]+)([^0-9 ]))(.*)#" TO "\1\3\5 \4\6\7" AUTORENAME
@NODESELECT
Code: Alles auswählen
Rename REGEXP PATTERN "(.*)(([^ ])(-)|(-)([^ ])| )(.*)#" TO "\1\5\3 \4\6\7" AUTORENAME
@NODESELECT
Code: Alles auswählen
Rename TO "{parent}.{ext}" FILEINFO AUTORENAME
@NODESELECT
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Super Liste!
Editiert:
Zuletzt am 02.06.2010:
- 4 verbesserte Buttons zugefügt ("EINFÜGEN: Anzahl Zeichen an Position von Vorne/Hinten" und ENTFERNEN: "Anzahl Zeichen an Position von Vorne/Hinten")
- Alle Buttons die bereits in Jörgs Sammlung vorhanden sind gelöscht.
16.05.2010:
- Schalter Ordnerinhalt nach "Ordner Name" hinzugefügt
15.05.2010:
- Untermenü "Datum konvertieren" zugefügt. Vor der Benutzung sollte unbedingt der entsprechende Beitrag von mir gelesen werden: http://www.haage-partner.de/forum/viewt ... =17&t=3393
- "Titlecase" benötigt nicht mehr den Import der entsprechenden Vorlage.
Der Code ist jetzt im Button enthalten.
- Vorlage "Titlecase.orp aus Zipdatei entfernt.
- Alle in dem Menübutton von "Joerg765" enthaltenen Schalter aus meinem Button entfernt, bis auf die von mir selbst hier vorgestellten.
- Icons zugefügt (Nur in DOpus enthaltene Standardicons).
- Da Jörg die bessere Sortierung hat, habe ich diese übernommen, aber nur meine eigenen Buttons eingefügt.
Das erleichtert die Einsortierung meiner Schalter in die Sammlung von Jörg (empfohlen.)
Der Menübutton enthält alle von mir hier vorgestellten Schalter soweit sie (noch) nicht in der Sammlung von Jörg vorhanden sind (Stand 02.06.2010).
Ich habe mir mal die Mühe gemacht, das Ganze in einen einzigen Menübutton zu füttern, so daß man zum Ausprobieren nicht jeden Button einzeln anlegen muß.
Die Liste ist in 6 Untermenüs mit folgendem Inhalt eingeteilt (Schalter, die auch in Jörgs Sammlung enthalten sind, sind mit "***" gekennzeichnet):
1) EINFÜGEN
- Zeichen an Position von Vorne
- Zeichen an Position von Hinten
- Anzahl Zeichen an Position von Vorne
- Anzahl Zeichen an Position von Hinten
- nach Vorlage "Titlecase"
- Ordnerinhalt nach "Ordner Name"
- ISO 8601 zum Anfang
- DIN 1355 nach Hinten
- DIN1355 nach ISO 8601
- ISO 8601 nach DIN1355
- MP3's nach ID3-Tags benennen
- MP3's nach Tags ordnen
- MP3's nach "Eigene Musik" sortieren
- JPG's nach "Name Datum - Zeit"
- JPG's nach "Nummer Ordner Datum - Zeit"
- Dateianhänge
-
- Schaltersammlung _umbenennen.zip
- Enthält:
Schaltersammlung Umbenennen.dcf - (7.37 KiB) 328-mal heruntergeladen
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
In einer Sammlung zum Umbenennen darf ein Schalterbeispiel für das Einbeziehen von Dateiinformationen wie ID3-Tags bei MP3 und Exif-Infos bei JPEG nicht fehlen. Deshalb hier drei Schalter, die MP3-Dateien auf Basis der ID3-Tags umbenennen. Voraussetzung ist natürlich, daß die Dateien vorher sinnvoll getaggt wurden. Die Schalter, die eine Ordnerstruktur anlegen sind nur dann sinnvoll einzusetzen,wenn wenn z.B. in den Tags immer der gleiche Künstler eingetragen ist. Bei "Various Artist" Alben landen die Dateien sonst in verschiedenen Ordnern.
Der folgende Befehl benennt MP3's nach folgendem Muster um:
Aus Xyz.mp3 wird "Tracknummer-Künstler-Album-Titel.mp3"
MP3's nach Tags benennen
Code: Alles auswählen
Rename FILEINFO PATTERN "*.mp3" TO "{mp3track}-{mp3artist}-{mp3album}-{mp3title}.mp3"
MP3's nach Tag benennen mit Ordnerstruktur
Code: Alles auswählen
Rename FILEINFO PATTERN "*.mp3" TO "{mp3artist}\{mp3album}\{mp3track|#2} {mp3title}.mp3"
Der dritte Befehl ist, finde ich der Clou: Er markiert automatisch den gesamten Ordnerinhalt, legt die Ordnerstruktur "Genre\Künstler\Album" an, verschiebt die nach "Tracknummer(2-stellig) Titel.mp3" umbenannten MP3's (plus eventuell vorhandene weitere Dateien wie coverart.jpg etc.) nach "Album", verschiebt dann das Ganze dorthin, wo ich meine Alben speichere (hier: "Eigene Musik\Alben", löscht auch noch den jetzt leeren Ursprungsordner und zeigt zuletzt den übergeordneten Ordner im Quellister und den Ordner Abum im Ziellister (Dualpath) an.
Wer will kann nach "rmdir {$OriginalSource}" in neuer Zeile noch den bevorzugten Player starten, um das Album als kleine Belohnung für die harte Arbeit abzuspielen.
Zum Beispiel für AIMP2:
C:\Programme\AIMP2\AIMP2.exe %* "%RENAME_TARGET%"
(Pfade mit Leerzeichen in Anführungsstriche setzen!)
MP3's nach Tags umbenennen und nach "Eigene Musik" verschieben
Code: Alles auswählen
@noexpandenv
@runmode hide
@set OriginalSource={sourcepath$|noterm}
Rename FILEINFO FROM "*.mp3" TO "{alias|mymusic\Alben}\{mp3genre}\{mp3artist}\{mp3album}\{mp3track|#2} {mp3title}.mp3"
Copy MOVE * TO "%RENAME_TARGET%"
Go PATH ".." DUALPATH "%RENAME_TARGET%"
rmdir {$OriginalSource}
@script vbscript
Option Explicit
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
Dim Shell
Set Shell = CreateObject("WScript.Shell")
Dim EnvVars
Set EnvVars = Shell.Environment("PROCESS")
EnvVars("RENAME_TARGET") = "zzzzz:\"
Function Rename_GetNewName(strFileName, strFilePath, fIsFolder, strOldName, ByRef strNewName)
' Fix any double \ chars resulting from empty tags (e.g. no genre).
' If we don't do this, things can get confused about the destination path.
strNewName = Replace(strNewName, "\\", "\")
' Set the %RENAME_TARGET% environment variable to the folder we're moving the file to.
' This can be used in the main command above to go to the folder.
' Note that we use "@noexpandenv" at the top of the command; if we didn't then %RENAME_TARGET%
' would be expanded *before* this script had run, which obviously would not work.
EnvVars("RENAME_TARGET") = fs.GetParentFolderName(strNewName)
End Function
Zum Umbenennen von JPEG's nach Exif-Infos muss in den Befehlen der Teil PATTERN "*.mp3" durch PATTERN "*.jpg" und die Tag-Einträge durch entsprechende Einträge für Exif-Infos (z.B. {shootingtime}) ersetzt werden.
P.S.: Ich habe die hier vorgestellten Befehle zu dem Menübutton in meinem vorherigen Beitrag hinzugefügt. Sie sind dort im Untermenü "MEDIA" zu finden.
- Support
- Site Admin
- Beiträge: 1671
- Registriert: 5. Apr 2003 14:21
- Betriebssystem: Windows 10
- Produkt: DOpus 12
- Version DOpus: Pro
- Wohnort: Frankfurt
- Kontaktdaten:
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Super Idee! Was meinen Anteil an der Sammlung angeht geht das völlig in Ordnung!
Zu meinem Menübutton hätte ich der Vollständigkeit halber noch die Idee, zwei weitere Untermenüs "Alle Dateien & Ordner" und "Alle Dateien" einzubauen in denen alle Schalter grundsätzlich auf den gesamten Ordnerinhalt (mit bzw. ohne Ordner) wirken, unabhängig davon, ob etwas markiert ist.
Wenn gewünscht würde ich mir diese Mühe machen...
Aber vielleicht reicht auch der Hinweis, daß man sich das mit "Rename *" und "Rename *.*" leicht selber basteln kann.
-
- Beiträge: 83
- Registriert: 12. Apr 2010 07:23
- Betriebssystem: Windows 7 Home 64bit
- Produkt: DOpus 11.3
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Was mich betrifft, kannst Du das gerne in ein Tutorial umarbeiten,
allerdings habe ich diese Codes zum größten Teil eh nur zusammengetragen,
aus diesem und aus dem englischen Forum.
JÖRG
-
- Beiträge: 83
- Registriert: 12. Apr 2010 07:23
- Betriebssystem: Windows 7 Home 64bit
- Produkt: DOpus 11.3
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
DANKE dafür, das war mir gar nicht aufgefallen, habe es jetzt geändert.da deine Buttons manchmal unnötigerweise Ordner ausschließen. (z.B. "Neuer Name VOR Name einfügen": "*.*" geändert zu "*")
JÖRG
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
...und noch'n Button...
Der folgende Button beruht auf einer Umbenennen-Vorlage von Steve Banham aus dem englischen Forum:
http://resource.dopus.com/viewtopic.php ... ase#p20642
TitleCase editiert und bereinigt Dateinamen in folgender Weise:
* Ersetzt %20 durch Leerstellen
* Entfernt mehrfache Leerstellen
* Ersetzt Unterstriche durch Leerstellen
* Entfernt Leerstellen an Anfang und Ende des Dateinamens
* Schreibt die Dateiendung klein
* Konvertiert nach True Titlecase (s.u.)
* Großbuchstabe nach Klammer
* Großbuchstabe nach Bindestrich
* Großbuchstabe nach Punkt
* Großbuchstabe nach "Zahl Leerstelle"
Der Button erledigt also diverse Dinge auf einmal und bewirkt eine weitgehend normale Schreibweise, weil er Groß- und Kleinschreibung gängiger Wörter berücksichtigt ("True Titlecase").
Die Vorlage enthält im Original eine Liste englischer Wörter die gewöhnlich klein geschrieben werden.
Diese Liste habe ich um deutsche Wörter erweitert. Es können natürlich nicht alle Verben berücksichtigt werden, sondern nur in Dateinamen häufig vorkommende Dinge wie z.B. "und" "an" "in" etc..
Falls jemand Vorschläge zur Erweiterung der Liste hat (Im Umbenennen-Dialog im Script nach der Liste suchen)...immer her damit.
Umbenennen nach Vorlage Titlecase
Code: Alles auswählen
@nodeselect
Rename TO "*"
@script vbscript
option explicit
' ********************************************************
' TitleCase by Steve Banham (tanis@dopus.com) 07-Apr-2007
' Modified by Leo Davidson (www.pretentiousname.com)
' ********************************************************
' General Options
' ********************************************************
dim fOddChars
dim fMultiSpace
dim fUnderscore
dim fStripSpaces
dim fExtLCase
fOddChars = True ' Replace %20 with spaces
fMultiSpace = True ' Remove multiple spaces
fUnderscore = True ' Replace "_" with a space
fStripSpaces = True ' Strip leading/trailing spaces
fExtLCase = True ' Make extension lower case
' ******************************************************
' TitleCase Options
' ******************************************************
' fTitleCase MUST be True for the other options in this
' section to work
' ******************************************************
dim fTitleCase
dim fParCap
dim fDashCap
dim fFullStopCap
dim fFirstNonNum
fTitleCase = True ' Convert to true titlecase
fParCap = True ' Capitalise after parenthesis
fDashCap = True ' Capitalise after a dash
fFullStopCap = True ' Capitalise after a full stop
fFirstNonNum = True ' Capitalise first non-numeric
' ******************************************************
Function Rename_GetNewName ( strFileName, strFullPath, _
fIsFolder, strOldName, ByRef strNewName )
' Write the name of the script to the Output window
Dopus.OutputString "TitleCase by Steve Banham 07-Apr-2007"
dim strExt
dim iOldLength
dim iNewLength
dim strNameArray
dim strTmpWord
dim strTmpName
dim x
dim j
dim i
'Strip the filename extension for now
if fIsFolder = False then
if InStr(strNewName, ".") then
strExt = Right(strNewName, Len(strNewName)-(InStrRev(strNewName, ".")-1))
strNewName = Left(strNewName, InStrRev(strNewName, ".")-1)
' Convert extension to lowercase while we're at it
if fExtLCase = True then
strExt = LCase(strExt)
end if
else
strExt = ""
end if
end if
' Replace "_" with spaces
if fUnderscore = True then
strNewName = Replace(strNewName, "_", " ")
end if
' Replace "%20" with spaces
if fOddChars = True then
strNewName = Replace(strNewName, "%20"," ")
end if
' Remove all multiple spaces
if fMultiSpace = True then
iNewLength = 0
iOldLength = len(strNewName)
Do While iOldLength > iNewLength
iOldLength = len(strNewName)
strNewName = Replace(strNewName," "," ")
iNewLength = len(strNewName)
Loop
end if
' Convert filename to TitleCase
if fTitleCase = True then
' Create an array from words in the filename
strNameArray = split(strNewName, " ")
' Now go through each item in the array and process it
if ubound(strNameArray) > 0 then
for x = lbound(strNameArray) to ubound(strNameArray)
' Set all text to lower case to begin with
strNameArray(x) = LCase(strNameArray(x))
' Ignore articles, prepositions and conjunctions
Select Case strNameArray(x)
Case "ob"
Case "was"
Case "wie"
Case "wer"
Case "wo"
Case "wann"
Case "seit"
Case "außer"
Case "rechts"
Case "links"
Case "neben"
Case "wenn"
Case "weniger"
Case "immer"
Case "nie"
Case "noch"
Case "mehr"
Case "vor"
Case "nach"
Case "hinter"
Case "bis"
Case "gegen"
Case "vom"
Case "beim"
Case "zum"
Case "zur"
Case "wird"
Case "war"
Case "unter"
Case "über"
Case "um"
Case "ohne"
Case "mit"
Case "aus"
Case "von"
Case "bei"
Case "durch"
Case "ist"
Case "ein"
Case "als"
Case "oder"
Case "und"
Case "für"
Case "auf"
Case "das"
Case "die"
Case "der"
Case "a"
Case "an"
Case "at"
Case "and"
Case "but"
Case "by"
Case "for"
Case "in"
Case "into"
Case "is"
Case "of"
Case "off"
Case "on"
Case "onto"
Case "or"
Case "the"
Case "to"
Case "if"
Case "it"
Case else
if len(strNameArray(x)) > 0 then
strTmpWord = Ucase(mid(strNameArray(x),1,1)) & mid(strNameArray(x),2,len(strNameArray(x))-1)
' If the word begins with "(" then capitalise the next letter
if mid(strNameArray(x),1,1) = "(" then
if fParCap = True then
strTmpWord = Ucase(mid(strNameArray(x),1,2)) & mid(strNameArray(x),3,len(strNameArray(x))-1)
end if
end if
' If the word follows a "-" then it needs to be capitalised
if mid(strNameArray(x),1,1) = "-" then
if fDashCap = True then
strTmpWord = Ucase(mid(strNameArray(x),1,2)) & mid(strNameArray(x),3,len(strNameArray(x))-1)
end if
end if
strNameArray(x) = strTmpWord
end if
end Select
next
Else
strNameArray(0) = LCase(strNameArray(0))
End if
' Make sure the first word is capitalised
strTmpWord = Ucase(mid(strNameArray(0),1,1)) & mid(strNameArray(0),2,len(strNameArray(0))-1)
strNameArray(0) = strTmpWord
' Clear the new name variable
strNewName = ""
' Rebuild the array into one string
For x = lbound(strNameArray) To ubound(strNameArray)
strNewName = strNewName & strNameArray(x) & " "
Next
' Capitalise after - when it's in the middle of words
' Capitalise after - when it's between words
if fDashCap = True then
For j = 1 to len(strNewName)
if mid(strNewName,j,1) = "-" then
strTmpName = strTmpName & mid(strNewName,j,1)
j=j+1
if mid(strNewName,j,1) = " " then
strTmpName = strTmpName & mid(strNewName,j,1)
j=j+1
end if
strTmpName = StrTmpName & Ucase(mid(strNewName,j,1))
else
strTmpName = strTmpName & mid(strNewName,j,1)
end if
Next
strNewName = strTmpName
strTmpName = ""
end if
' Capitalise after full stops in the middle of and between words
if fFullStopCap = True then
For i = 1 To len(strNewName)
if mid(strNewName,i,1) = "." then
strTmpName = strTmpName & mid(strNewName,i,1)
i=i+1
if mid(strNewName,i,1) = " " then
strTmpName = strTmpName & mid(strNewName,i,1)
i=i+1
end if
strTmpName = StrTmpName & Ucase(mid(strNewName,i,1))
else
strTmpName = strTmpName & mid(strNewName,i,1)
end if
Next
strNewName = strTmpName
strTmpName = ""
end if
' Capitalise first non-numeric, non-space character.
' This is for music files like "07 By My Side.flac" which don't have a dash after their track numbers.
if fFirstNonNum = True then
For i = 1 to len(strNewName)
if (not IsNumeric(mid(strNewName,i,1))) and mid(strNewName,i,1) <> " " then
strNewName = mid(strNewName,1,i-1) & Ucase(mid(strNewName,i,1)) & mid(strNewName,i+1)
exit for
end if
Next
end if
end if
' Strip leading/trailing spaces
if fStripSpaces = True then
strExt = Trim(strExt)
strNewName = Trim(strNewName)
end if
' Rejoin the name and extension and we're finished
strNewName = strNewName & strExt
End Function
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Hier die neuen Buttons:
1) Dateien Nummerieren (Nummeriert Dateien + Ordner mit 2-stelliger führender Nummer)
2) Umbenennen und nummerieren (Benennt Dateien + Ordner um und nummeriert sie mit Optionen für "sequentielles Nummerieren")
Den Code für diese beiden Buttons findet ihr hier:
http://www.haage-partner.de/forum/viewt ... =25&t=3382
3) EINFÜGEN: Zeichen an Position von Vorne (Fügt Zeichen nach der gewählten Stelle im vorhandenen Namen ein)
4) ENTFERNEN: Anzahl Zeichen an Position von Vorne (Löscht nach einzugebender Position von vorne die einzugebende Anzahl von Zeichen aus den bestehenden Namen)
Diese beiden Buttons stammen aus diesem Thread:
http://www.haage-partner.de/forum/viewt ... =25&t=3375
Button 1) und 2) findet ihr unter "DURCHNUMMERIEREN" in Jörgs Sammlung (Post #1).
Button 3) und 4) findet ihr in meiner Schaltersammlung (Post #3)
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
http://www.haage-partner.de/forum/viewt ... =25&t=3388
Der Button hängt an den bestehenden Datei- bzw. Ordnernamen das aktuelle Datum nach folgendem Muster an:
Name - TT.MM.JJJJ[.ext]
Aktuelles Datum an bestehenden Namen anhängen
Code: Alles auswählen
@nodeselect
Rename Type=files PATTERN="*.*" TO="* - {dateu|dd.MM.yyyy}.*"
Rename Type=dirs PATTERN="*" TO="* - {dateu|dd.MM.yyyy}"
TO="{dateu|dd-MM-yyyy} *.*" würde zum Beispiel TT-MM-JJJJ Name.ext für Dateien ergeben.
{dateu|dddd dd.MMMM.yyyy} würde Wochentag TT.Monat.JJJJ ergeben.
ddd bzw. MMM ergibt Wochentag bzw. Monat abgekürzt.
Wer auch noch die Zeit einbauen möchte kann {time|HH-mm-ss} dranhängen.
Der Button ist in der Schaltersammlung von Jörg (Post #1) unter "Datum (Aktuell)" zu finden.
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Habe grad deinen Menübutton oben entdeckt.
Machen wir jetzt einen Wettbewerb, wer den schönsten hat?
Was die Sortierung angeht, gebe ich mich auf jeden Fall geschlagen! Deine ist weitaus besser!
Für mich selbst habe ich das sofort übernommen.
Hier im Forum bleibe ich mal bei meiner alten Version, es sei denn wir können uns auf eine gemeinsame einigen.
Mir fehlen bei dir aber die Tooltips, die habe ich von meinen Buttons übernommen. Finde ich gerade hier im Forum wichtig, weil ein User der sich das herunterlädt möglichst genau wissen sollte was passiert, wenn er auf einen Button drückt. Da ist Platz für ausführliche Erklärungen.
Das Kennzeichnen mit [Eingabe] und [Anzahl] finde ich zwar durchaus sinnvoll, für mich sind die Namen dadurch aber zu lang. Ich habe das lieber in den Tooltips, weil die Menü-Popups sonst so breit werden. Kann man ja auch erstmal nutzen, bis man seine Buttons kennt und dann kürzen.
Die Abteilung "Extras" habe ich bei mir komplett nach "Umbenennen" verschoben und statt dessen "Media" angelegt für MP3, JPG & Co.
Ausserdem habe ich einige Beschreibungen gändert, weil sie mir zu lang waren (z.B. an beliebiger Stelle ersetzt durch an "Position") und weil ich das ständige GROSSSCHREIBEN von VON und NACH nicht mag. Aber das kann ja jeder für sich entscheiden
Die Icons direkt ins Verzeichnis C:\ zu legen geht finde ich gar nicht! Mindestens C:\Icons\ sollte es schon sein. Mein Pfadvorschlag wäre etwas wie "/mydocuments\DOpus\Icons\". Das landet bei jedem in "Eigene Dateien".
Ich selbst habe mir einen Ordner "C:\Programme\DOpusTools\" angelegt wo ich alle Commandline-Tools wie setclip.exe, Textmining Tool, DopGoogle, WmaAlbumArtist usw. abgelegt habe, die ich nur mit DOpus nutze. Da gibt's auch einen Ordner für eigene Icons.
Ansonsten sind ja auch ein paar "Neue" dabei, die hier noch nicht sind.
Die unter "Datum" fand ich sehr speziell. Mit Tooltips wäre schneller klar, was die bewirken.
Da fehlte mir auch noch der aus meinem vorigen Post in der Liste.
Ein Button, der das Datumsformat automatisch findet, auch wenn's nicht am Anfang steht (z.B. finde 8 Nummern, die mit 190 bis 201 anfangen) und dann beliebig umformatiert wäre klasse oder?
Sowas sollte man natürlich nur anwenden, wenn man vorher sicherstellt, das dadurch nicht andere enthaltene Zahlenfolgen zerschlagen werden.
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Hier ein paar Beispiele zum Umbenennen von JPG's mit Hilfe von enthaltenen Exif-Informationen:
In der einfachsten Form will ich nur z.B. das Aufnahmedatum an den bestehenden Dateinamen anhängen.
Der erste Button würde eine Datei "Test.jpg" umbenennen nach "Test So 09.05.2010 - 12-40-41"
JPG's nach "Name - Aufnahmedatum/Zeit" umbenennen
Code: Alles auswählen
@nodeselect
Rename FILEINFO CASE=extlower PATTERN="*.*" TO="* {shootingtime|D#ddd dd.MM.yyyy} - {shootingtime|T#HH-mm-ss}.*"
Dafür habe ich mir einen Button gebaut, der aus dem Ordnernamen das "2003" entfernt, weil ja im Datum enthalten.
Ausserdem finde ich nützlich, die Dateien zusätzlich zu nummerieren.
Die Datei "Test.JPG" im Ordner "Irland 2003" würde hiermit also in "001 Irland So 29.06.2003 - 13-40-31.jpg" umbenannt
Hier mein spezieller Button:
JPG's nach Ordnernamen benennen und nummerieren
Code: Alles auswählen
@nodeselect
@set Start={dlgstring|Nummer der ersten Datei (durch führende Nullen Anzahl der Stellen definieren):|0}
Rename FILEINFO CASE=extlower NUMBER={$Start} BY=1 REGEXP PATTERN="(.*)\.(.*)" TO="[#] {parent} {shootingtime|D#ddd dd.MM.yyyy} - {shootingtime|T#HH-mm-ss}.\2"
Rename REGEXP PATTERN="(.+) ([0-9]+) (.+)" TO="\1 \3"
Beide Buttons sind in meinem Menübutton der "Schaltersammlung Umbenennen" (Post #3) enthalten.
-
- Beiträge: 83
- Registriert: 12. Apr 2010 07:23
- Betriebssystem: Windows 7 Home 64bit
- Produkt: DOpus 11.3
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Du hast Recht, mit Tooltips macht es mehr Sinn.
Die Datum-Funtionen sind speziell auf meine Wünsche angepasst,
deshalb hatte ich auch überlegt, sie hier im Forum wegzulassen.
Habe sie jetzt etwas abgeändert, vielleicht ist es so verständlicher.
Die ICONs kann ja jeder an einen anderen Ort speichern,
er muß halt nur den CODE dementsprechend anpassen.
Das geht im Text-Editor durch SUCHEN und ERSETZEN ja ganz einfach.
JÖRG
- Kundal
- Moderator
- Beiträge: 1272
- Registriert: 20. Apr 2010 21:26
- Betriebssystem: Win7 & Win 10 Pro 64 bit
- Produkt: DOpus 12 x64 - Letzte Betaversion
- Version DOpus: Pro
Re: Schalter-Sammlung: (mehrfaches) Umbenennen
Also z.B. aus: "001 Irland 2003 So 29.06.2003 - 13-40-31.jpg" soll die erste "2003" gelöscht werden.
Das mache ich in der letzten Zeile hiermit (meine erste ernsthafte Beschäftigung mit den REGEXP's, sonst habe ich nur "geklaut".) :
Code: Alles auswählen
Rename REGEXP PATTERN="(.*)\ (.*)\ (.*)\ (.*)\ (.*)\ -\ (.*)(.*)" TO="\1 \2 \4 \5 - \6.\7"
Funktionieren tut es für meine Bedürfnisse ja. Aber eben nur dann, wenn der Name exakt so aufgebaut ist, was ja nach dem vorherigen Befehl sicher der Fall ist (es sei denn der Ordner hat z.B. drei durch Leerstellen getrennte Namensteile).