4 votos

Comprobación de existencia de archivos ocultos en AppleScript

Puedo comprobar para ver si existe un archivo con AppleScript. Pero estoy teniendo problemas con los archivos ocultos. ¿Hay una manera especial de hacer esto?

set home_path to (path to home folder as text)
set hiddenFile to home_path & ".test"

tell application "Finder"
    if not (exists file hiddenFile) then
        display dialog ".test does not exist."
    end if
end tell

9voto

klanomath Puntos 19587

Reemplazar Finder con eventos del sistema:

 set home_path to (path to home folder as text)
set hiddenFile to home_path & ".test"

tell application "System Events"
    if not (exists file hiddenFile) then
        display dialog ".test does not exist."
    else
        display dialog ".test does exist."
    end if
end tell
 

y funciona.

4voto

hjdm Puntos 18

También se puede en línea llamando el comando shell en el AppleScript sin la necesidad de crear diferentes secuencias de comandos de bash. Aquí está un ejemplo:

set home_path to (path to home folder as text)
set fileName to ".viminfo"
set hiddenFile to home_path & fileName

tell application "Finder"
    if not (exists file hiddenFile) then
        try
            set output to do shell script "[ -f " & quoted form of POSIX path of hiddenFile & " ];"
        on error
            display dialog fileName & " does not exist."
        end try
        display dialog fileName & " does exist."
    end if
end tell

Este AppleScript usa bash [ -f $PATH ]; para comprobar si existe archivo. También utiliza el try , porque hay que "coger" un error - si el archivo no existe se produce un error y se detiene la secuencia de comandos.

2voto

Chuck Dries Puntos 141

Así que no sé cómo hacer esto de forma nativa con AppleScript, sino porque Macs usar Bash, puede utilizar una secuencia de comandos de shell para hacer la búsqueda. No es lo ideal, pero es mejor que nada.

Por lo que su secuencia de comandos de shell va a cd, cambio de directorio, en la carpeta que usted necesita para buscar. A continuación, se va a ejecutar el ls comando, que muestra el contenido de un directorio. el -a indicador en ls dice que la lista de elementos ocultos. Bash herramientas de uso de un concepto llamado estándar de entrada/salida para obtener la entrada y salida de pantalla. La salida estándar se muestra en la pantalla por defecto, pero puede ser redirigido a través de una herramienta llamada un tubo para ir a otro lugar. En este caso, en lugar de mostrar una lista de todos los archivos en un directorio, vamos a la tubería de esa lista en una herramienta de búsqueda llamado grep. Esa explicación fue algo largo pero su secuencia de comandos de shell sólo necesita 3 líneas (la primera de las cuales podría decirse que es innecesario en este caso):

#!/bin/bash                                   # define the shell, not really needed because bash is the default shell but good practice
cd /path/to/search/directory                  # cd to the proper place
ls -a | grep "the text you're looking for"    # list all files (including hidden ones) and pipe output into grep, a search tool

Guardar esto como algo lógico, como findFile.sh, luego de hacerlo ejecutable con este comando en el terminal de la aplicación

chmod +x /path/to/findFile.sh

Así que ahora que está listo para ir, en el AppleScript.

Como dije no soy de esa experiencia en AppleScript, pero por lo que yo entiendo que debería ejecutar el shell script como este

set output to do shell script "/path/to/findFile.sh"

a continuación, el output variable contendrá el texto que grep encontrado. Su prueba de si o no el archivo existe ahora es si o no output contiene ningún texto.

Siéntase libre de ejecutar man grep en la terminal de la grep manual para ver más acerca de cómo funciona y de lo que los partidos y cómo sólo coincidirá con los archivos con ciertas extensiones y cosas por el estilo. Tal vez es posible que desee jugar alrededor de una tubería de cosas en grep para tener una idea de cómo funciona.

Esperemos que alguien puede venir junto con una respuesta a su pregunta en AppleScript.

Referencias:

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