mover un archivo, reemplazando los existentes (si los hay), idealmente poniendo los existentes en la papelera

0

Estoy tratando de encontrar una manera de mover automáticamente un archivo de A a B (sin la intervención del usuario), reemplazando a B si existe, idealmente colocando la copia existente de B en la carpeta de la Papelera correspondiente.

Esto se hará en un script de shell. Eventualmente, A y B se convertirán en $VARIABLES así:

/usr/bin/osascript <<EOT
tell application "Finder"
    move POSIX file "$SOURCE" to POSIX file “$DEST" with replacing
end tell
EOT

but No puedo hacer que esto funcione sin variables, como esta:

/usr/bin/osascript <<EOT
tell application "Finder"
    move POSIX file "/Users/luomat/Desktop/1.txt" to POSIX file "/Users/luomat/Desktop/2.txt" with replacing
end tell
EOT

Tomé esa sintaxis prácticamente directamente de Stackoverflow 14058061 pero Obtengo este resultado:

24:132: execution error: Finder got an error: AppleEvent handler failed. (-10000)

También encontré un artículo de MacTech que sugirió usar replacing true así que lo intenté:

/usr/bin/osascript <<EOT
tell application "Finder"
    move POSIX file "/Users/luomat/Desktop/1.txt" to POSIX file "/Users/luomat/Desktop/2.txt" replacing true
end tell
EOT

pero todavía dice:

24:132: execution error: Finder got an error: AppleEvent handler failed. (-10000)

Tenga en cuenta que stackoverflow # 12708195 No estoy tratando de pedirle al usuario que haga esto, pero lo ideal sería que sucediera 'automágicamente' como dicen los niños.

Entonces ... ¿qué estoy haciendo mal y / o que falta? Intentar en Google para obtener información sobre el código de error (-10000) me dice que significa "AppleScript fallido", que no es todo que útil.

    
pregunta TJ Luoma 22.01.2014 - 21:36

1 respuesta

1

Necesito hacer un poco más de investigación para hacer esto bien. Siento que está cerca, pero a Applecript todavía no le gusta. Tal vez te dé algunas ideas hasta que regrese aquí para darle otra oportunidad. Por cierto, esto va a ser mucho más fácil cuando esté utilizando el diálogo de selección de archivos.

aquí está mi intento de no trabajar (todavía). Si no eres yo, intentaré terminar la solución mañana.

# 1. get desktop folder
set desktopFolder to (((path to desktop from user domain) as string)) as alias


# 2.set source file
tell application "Finder" to ¬
set theFile to ((path to file "1.text" of folder (desktopFolder)) as string) as   alias


# 3.set destination file
tell application "Finder" to ¬
set theDestination to ((path to file "2.text" of folder (desktopFolder)) as string) as alias



# 4.make it happen
tell application "Finder" to move theFile to theDestination with replacing
    
respondido por el Eric Jones 21.02.2015 - 01:33

Lea otras preguntas en las etiquetas