3 votos

Cómo encontrar todos modifica archivos PDF

Tengo una carpeta de más de 6000 archivos PDF (capítulos, artículos, etc.). Estoy tratando de malezas a cabo u ordenar aquellas que acabo de descargar, pero nunca anotado. Es allí una manera de hacer esto? Los archivos Pdf que nunca he anotado suelen tener el mismo "creado" y "modificado" fechas, así que estaba pensando en esos criterios podrían ser utilizados (es decir, busca los archivos cuya fecha de modificación es posterior a/no es la misma que la fecha de creación), pero no tengo idea de cómo hacerlo.

En otras palabras, tengo que ser capaz de encontrar cualquier documento PDF en mi ordenador, que ha sido modificado.

Gracias por la ayuda!

3voto

user3439894 Puntos 5883

Por el info en el OP y comentarios, esto va a hacer como usted lo pidió.

En Automator:

  • Crear un nuevo Flujo de trabajo.
  • Añadir un Encontrar Buscador de Elementos de acción.
    • Con la configuración, por ejemplo, de Búsqueda (Documentos)
    • (Todas) de las siguientes afirmaciones son verdaderas
    • (Tipo) (es) (PDF)
  • Añadir un Ejecutar AppleScript acción.

    • Reemplace el código por defecto con el siguiente ejemplo de AppleScript de código muestran más abajo:

    • Nota: Si Descremada no es en la /las Aplicaciones de la carpeta, a continuación, modificar el valor de la skimpdfPathFilename variable en consecuencia. Usted no debería tener que modificar nada más, a menos que usted desea establecer la valor de la offsetInSeconds variable, por ejemplo set offsetInSeconds to 60, a un valor. Esta variable se utiliza para ayudar a encontrar los archivos que realmente han sido modificados desde que fueron creados. La granularidad diferencial entre el creation date y modification date cuando un archivo se crea por primera vez puede ser de 0 segundos a un mayor valor, que no es una constante de valor dependiendo de cómo se creó el archivo. Hacer los ajustes que usted ve ajuste para el caso de uso.

Lo que el Flujo de trabajo y el ejemplo de AppleScript código :

  • Encuentra todos los PDF de los archivos en el destino de la carpeta, incluyendo todas las subcarpetas.
    • Esto se hace con el Encontrar Buscador de Elementos de acción y su resultado se pasa a la
      Ejecutar AppleScript acción.
  • Crea una lista de todos los PDF de los archivos que han sido modificados después de la creation date, por el valor de la offsetInSeconds variable.
    • Esto se hace en la primera repeat de bucle. Archivos que cumplan los criterios son almacenados en modifiedFilesList a ser utilizado en la próxima repeat de bucle.
  • Crea una lista de todos los archivos que tengan las anotaciones hechas en la Descremada.
    • Esto se hace usando xattr para obtener los atributos extendidos de los archivos de destino. Si un archivo tiene el objetivo de los atributos extendidos de un indicador se establece en true y si no, establecer a false. Los archivos marcados como true ir en annotatedSkimFilesList a ser utilizado en la próxima repeat de bucle.
  • Incrusta en lugar de las anotaciones hechas en los archivos de leche Descremada.
    • El uso de la skimpdf utilidad dentro Descremada en los archivos en annotatedSkimFilesList, anotaciones están incrustados en el lugar. Por lo tanto no hay necesidad de exportar a un archivo en segundo lugar, a continuación, elimine el original y reemplazarlo.

NOTA: Mientras que yo he probado este y funciona sin problema, para mí, sin embargo no se ejecute hasta que estés seguro de que usted tiene una copia de seguridad adecuada! También debe probar el flujo de trabajo en un pequeño muestreo de los archivos copiados se coloca fuera de la búsqueda real de la carpeta el flujo de trabajo se ejecuta después de que se acabe la prueba.


Ejemplo de AppleScript código:

on run {input, parameters}

    set skimpdfPathFilename to "'/Applications/Skim.app/Contents/SharedSupport/skimpdf'"

    set offsetInSeconds to 60       
    set modifiedFilesList to {}
    set annotatedSkimFilesList to {}

    repeat with i from 1 to count input
        set fileInfo to info for item i of input
        set cDate to creation date in fileInfo
        set mDate to modification date in fileInfo
        if mDate > (cDate + offsetInSeconds) then
            set end of modifiedFilesList to POSIX path of item i of input
        end if
    end repeat

    repeat with i from 1 to count modifiedFilesList
        set withNotes to (do shell script "xattr " & quoted form of item i in modifiedFilesList ¬
            & " | [ $(grep -c \".*_notes$\") -ge 1 ] && printf 'true' || printf 'false'") as boolean
        if withNotes then
            set end of annotatedSkimFilesList to item i in modifiedFilesList
        end if
    end repeat

    repeat with i from 1 to count annotatedSkimFilesList
        do shell script skimpdfPathFilename & space & "embed" & space & ¬
            quoted form of item i in annotatedSkimFilesList
    end repeat

end run

La comprensión de la do shell script comando en el segundo repeat loop:

Cuando un PDF es anotado en Descremada y salvos, atributos extendidos se establecen en el archivo, por ejemplo:

$ xattr Filename.pdf 
com.apple.FinderInfo
net_sourceforge_skim-app_notes
net_sourceforge_skim-app_rtf_notes
net_sourceforge_skim-app_text_notes
$ 

La salida se canaliza | para:

[ $(grep -c \".*_notes$\") -ge 1 ] && printf 'true' || printf 'false'

Que las pruebas de la salida de grep contar las ocurrencias del patrón y si grep encuentra una o más ocurrencias del patrón, entonces el valor de la withNotes variable se establece en true, mientras que se establezca en false lo contrario.

Tenga en cuenta que Descremada tiene un built-en la utilidad de línea de comandos, por ejemplo /Applications/Skim.app/Contents/SharedSupport/skimnotes que puede ser utilizado para probar si el PDF tiene las anotaciones hechas en Descremada, sin embargo, debido a su salida de esta utilidad es mejor utilizar en un script de shell ejecutar en la Terminal , a continuación, un do shell script comando, y por qué usé xattr y grep lugar.


Nota: El ejemplo de AppleScript en el código de arriba es solo eso, y no incluye cualquier error de manipulación como puede ser apropiado/necesitaba/quería, la responsabilidad recae sobre el usuario para agregar cualquier error de manipulación para cualquier código de ejemplo presentado y / o el código escrito por el mismo.

1voto

ProGrammer Puntos 64

Introducción
Basado en sus preguntas y su seguimiento comentario debajo de ella, creo que la solución puede ser tan simple como lo que yo estoy proponiendo. En adición a @user3439894 bien escrito el comentario, creo que un par de buenas opciones para realizar su tarea.

El Programa De Instalación

  1. Abra la ubicación en Finder y navegue a las opciones de vista en la parte superior. Se parece a esto: enter image description here

  2. Ahora, vaya a las opciones de organización de la barra en la parte superior, haga clic en ellos y usted debería ver el siguiente. Asegúrese de revisar tanto Date Modified y Date Created junto con todas las demás opciones que desee ordenar.enter image description here

  3. Siguiente, ordenar la lista por Date Modified, en mi caso he creado los archivos uno tras otro en el consecutivo de orden de nombres, no dejes que esto te engañe. He cambiado el archivo 17.pdf y los guardó. Como se puede ver, saltó a la parte superior de la lista. Cuando se ve en la decisión de orden. enter image description here

La aplicación
Como todos los archivos se agrupan por su Date Modified, puede arrastrarlos en trozos de forma individual en el droplet (suponiendo que no en el hecho de funcionar plenamente como usted dice que lo hace).
Esto abarcará la segunda mitad de su comentario, mientras que @user3439894 ha dado básicamente lo que se busca en la primera mitad.
Yo estaría interesado en el seguimiento con usted sobre cómo iban las cosas, sea cual sea la opción que usted elija depende de usted, son las dos alternativas manualmente la detección de los datos uno por uno.

0voto

wch1zpink Puntos 11

Probablemente la cosa más fácil de hacer es crear una carpeta inteligente en el Finder. Este elegante carpeta contiene todos los archivos que se definen los criterios de búsqueda. A partir de ahí, es muy fácil ordenar los archivos en cualquier forma que te gusta.

En el Finder, vaya a menú Archivo/Nueva Carpeta Inteligente.

enter image description here

Si desea buscar en todo el equipo para que los archivos PDF, seleccione "Macintosh HD" en la barra lateral. En el campo de la búsqueda, basta con entrada... .pdf

enter image description here

En el lado derecho de la imagen verás un botón " + " debajo del botón Guardar. Al hacer clic en ese botón le permitirá entrar en más criterios de búsqueda. Hay un montón de opciones que puede elegir. Elegí "la extensión de archivo" y ha añadido .pdf para el valor

enter image description here

En el Finder, vaya al elemento de menú Ver/Mostrar Opciones de visualización

enter image description here

Asegúrate de que la "Fecha de Modificación" Se establece en ambos campos disponibles

enter image description here

Golpear el Botón "Guardar" debajo de la pestaña que dice nueva Carpeta Inteligente

enter image description here

Ahora tendrá una nueva carpeta inteligente con todos sus documentos Pdf en la barra lateral del Finder.

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X