Dateinamen eines bestimmten Typs kürzen auf vier Stellen

H

henne01278

Neues Mitglied
0
Hall liebe Forengemeinde,

ich möchte eine einzige Datei automatisch nach dem Kopieren in einen bestimmten Ordner umbenennen. Die ersten vier Zahlen sollen erhalten bleiben, gleichermaßen die Dateiendung .apk. Ich möchte die Datei, welche sich ab und an wechselt, um alle weiteren Informationen im Namen bereinigen. Wie bekomme ich das hin?

Beispieldateiname: 1234_en_abc_v1.apk
Zielname: 1234.apk

Egal, wie viel hinter den ersten vier Zahlen steht, das soll weg. Geht sowas mit Tasker? Den Kopierprozess, das Prüfen des Ordners usw. habe ich bereits gelöst. Den Befehl rename scheint es in Tasker nicht zu geben, oder?

Vielen Dank für eure Hilfe!

PS.: Ich tue mich leider schwer, folgendes so anzupassen, dass es funktioniert.

Code:
for i in /storage/sdcard1/videos/*.mp4;do mv "$i" "${i//\.mp4/\.mov}";done

und

Code:
$ for i in *.jpg; do echo mv $i ${i:0:2}.jpg; done

Letzterer Code läuft leider nicht in Tasker.
 
Zuletzt bearbeitet:
@henne01278

Hallo,
hab hier einen Vorschlag, wie es mit Tasker - Aktionen ohne zu Scripten gehen würde.

Backup (10)

A1: Variable Set [ Name:%directory To:/sdcard/DCIM/Camera Recurse Variables:Off Do Maths:Off Append:Off ]
A2: List Files [ Dir:%directory Match: Include Hidden Files:Off Use Root:Off Sort Select:Modification Date Variable:%file Continue Task After Error:On ]
A3: If [ %file1 Set ]
A4: For [ Variable:%file Items:%file() ]
A5: Variable Set [ Name:%var To:%file Recurse Variables:Off Do Maths:Off Append:Off ]
A6: Variable Split [ Name:%var Splitter:%directory/ Delete Base:Off ]
A7: Variable Set [ Name:%name To:%var2 Recurse Variables:Off Do Maths:Off Append:Off ]
A8: Variable Split [ Name:%name Splitter:. Delete Base:Off ]
A9: Variable Section [ Name:%name1 From:1 Length:4 Adapt To Fit:Off Store Result In:%name1 ]
A10: Copy File [ From:%file To:/storage/48D7-0D51/-DCIM/Bilder/%name1.%name2 Use Root:Off ]
A11: End For
A12: End If

Hierbei werden ALLE Dateien aus dem Verzeichnis "/sdcard/DCIM/Camera" (siehe A1) in das Verzeichnis "/storage/48D7-0D51/-DCIM/Bilder" (siehe A10) kopiert und dabei gleich nach Deinem Wunsch umbenannt. ACHTUNG: Existiert schon eine gleichnamige Datei im Zielverzeichnis, wird sie rigoros überschrieben! In dem Beispiel werden alle Fotos vom internen Speicher auf die SD-Karte kopiert und dabei nur mit den ersten 4 Stellen des ursprünglichen Namens + Dateiendung benannt. (Die Namenskürzung auf 4 Stellen macht mit Fotos natürlich keinen Sinn. Ich hab es halt damit getestet.)
Wichtig: Bei (A8) als "Splitter" den Punkt nicht übersehen!

Grüßle,
hdn
 
  • Danke
Reaktionen: henne01278
Vielen Dank für die Lösung der Aufgabe. Leider bekomme ich ein Problem angezeigt in Bezug auf die if-Funktion:
screenshot_2017-01-25jyaai.png

Code:
<TaskerData sr="" dvi="1" tv="4.9u4m">
    <Task sr="task8">
        <cdate>1485372080496</cdate>
        <edate>1485375249027</edate>
        <id>8</id>
        <nme>Test6</nme>
        <pri>100</pri>
        <Action sr="act0" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%directory</Str>
            <Str sr="arg1" ve="3">/storage/emulated/0/Download/copytool</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
        </Action>
        <Action sr="act1" ve="7">
            <code>412</code>
            <Str sr="arg0" ve="3">%directory</Str>
            <Str sr="arg1" ve="3"/>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="6"/>
            <Str sr="arg5" ve="3">%file</Str>
        </Action>
        <Action sr="act10" ve="7">
            <code>40</code>
        </Action>
        <Action sr="act11" ve="7">
            <code>38</code>
        </Action>
        <Action sr="act2" ve="7">
            <code>37</code>
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%file1</lhs>
                    <op>12</op>
                    <rhs>Set</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act3" ve="7">
            <code>39</code>
            <Str sr="arg0" ve="3">%file</Str>
            <Str sr="arg1" ve="3">%file()</Str>
        </Action>
        <Action sr="act4" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%var</Str>
            <Str sr="arg1" ve="3">%file</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
        </Action>
        <Action sr="act5" ve="7">
            <code>590</code>
            <Str sr="arg0" ve="3">%var</Str>
            <Str sr="arg1" ve="3">%directory/</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act6" ve="7">
            <code>547</code>
            <Str sr="arg0" ve="3">%name</Str>
            <Str sr="arg1" ve="3">var2</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
        </Action>
        <Action sr="act7" ve="7">
            <code>590</code>
            <Str sr="arg0" ve="3">%name</Str>
            <Str sr="arg1" ve="3"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act8" ve="7">
            <code>597</code>
            <Str sr="arg0" ve="3">%name1</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="4"/>
            <Int sr="arg3" val="0"/>
            <Str sr="arg4" ve="3">%name1</Str>
        </Action>
        <Action sr="act9" ve="7">
            <code>404</code>
            <Str sr="arg0" ve="3">%file</Str>
            <Str sr="arg1" ve="3">Download/test/%name1.%name2</Str>
            <Int sr="arg2" val="0"/>
        </Action>
    </Task>
</TaskerData>

Irgendetwas muss ich falsch eingegeben haben. Dabei raus kommt dann eine umbenannte Datei, wie sie hier zu sehen ist:
screenshot_2017-01-25qaj77.png


Vielen Dank für die Hilfestellung und die Mühe!
 
Zuletzt bearbeitet:
Bearbeitet von: cptechnik - Grund: Bilder in den Beitrag geholt - Gruß cptechnik
Hallo,

bei Aktion 7 fehlt das Prozentzeichen vor "var2" und bei Aktion 8 fehlt der Teiler "." (Das hatte ich extra noch mal erwähnt, weil man so einen einzelnen kleinen Punkt leicht übersieht.

Grüßle und viel Erfolg,
hdn
 
  • Danke
Reaktionen: henne01278
Ich danke dir für die weitere Hilfe. Ich habe es nun - genau so wie du es beschrieben hast - umsetzen können! Es läuft...
 

Ähnliche Themen

Viper73
Antworten
11
Aufrufe
509
Viper73
Viper73
5
Antworten
0
Aufrufe
362
579242
5
S
Antworten
1
Aufrufe
213
NitramAkloh
N
Zurück
Oben Unten