Recortar caracteres de la ayuda de script de nombre de archivo

0

Estoy tratando de ejecutar un script de cambio de nombre bastante simple, pero no puedo hacerlo con un flujo de trabajo de Automator y mi conocimiento de scripting es totalmente inadecuado (esto es, en última instancia, para usar con Hazel ). El equivalente que estoy tratando de ejecutar en Name Mangler es:

'elimina 2 caracteres que comienzan en el índice 1, contando desde el inicio'

y

'elimina 2 caracteres que comienzan en el índice 2, contando desde el final'

Cualquier ayuda sería apreciada; AppleScript, Java y Shell están bien, ya que esto se integrará en Hazel.

    
pregunta Ben Bronstein 02.08.2016 - 12:13

2 respuestas

1

ACTUALIZACIÓN: malinterpreté tu pregunta y originalmente di una respuesta que comenzó en "carácter 1". Si entiendo correctamente, quieres recortar los dos primeros caracteres y los dos últimos. Por lo tanto, desea comenzar en "carácter 3". He hecho la corrección aquí.

Hazlo de esta manera:

set the_short_name to characters 3 thru -2 of the_original_name as string

Eso es todo lo que hay que hacer.

Ya que estás trabajando con Hazel, puedes obtener el nombre del archivo de esta manera:

set the_original_name to name of theFile

Es posible que desee sacar más de dos caracteres, ya que los últimos cuatro caracteres probablemente son ".png", así que elimine 6 caracteres y luego agregue ".png" al nombre corto.

Una cosa más: Hazel puede pensar que el archivo renombrado es un archivo "nuevo" y, por lo tanto, ejecute el AppleScript en el archivo renombrado una y otra vez hasta que el nombre sea tan corto que no pueda hacerse más corto. La forma en que manejaría eso es mover el archivo fuera de la carpeta vigilada y luego cambiarle el nombre. En mi caso, tengo una carpeta llamada "Capturas de pantalla renombradas" en mi escritorio: su ruta será diferente. Use su propio nombre de usuario (no "suusuario" como lo he puesto en la línea a continuación).

move theFile to (POSIX file "/Users/youruser/Desktop/Renamed Screenshots")
        set the name of theFile to the_short_name & ".png"

Eso debería hacerlo.

    
respondido por el Christian Boyce 04.08.2016 - 00:54
0

Aquí hay un comando de bash de una línea que hará esto por ti:

for file in *.png; do ext=${file##*.}; fname="'basename $file .${ext}'" ; len='expr ${#fname} - 4'; fname="${fname:2:${len}}"; fname="${fname}.${ext}"; mv -- "${file}"  "${fname}"  ;done

Este comando separará el nombre del archivo de la extensión, calculará la longitud de la nueva cadena, luego eliminará los dos primeros caracteres y los dos últimos caracteres, luego "moverá" el archivo original al archivo recién nombrado.

Ejecutando este comando en algunos archivos PNG en una "Carpeta de prueba"

Antes:

Después:

    
respondido por el Allan 04.08.2016 - 01:59

Lea otras preguntas en las etiquetas