sposta un file, sostituendo esistente (se esistente), idealmente inserendo nel cestino

0

Sto cercando di trovare un modo per automaticamente (senza l'intervento dell'utente) spostare un file da A a B, sostituendo B se esiste, idealmente inserendo la copia esistente di B nella cartella Cestino appropriata.

Questo sarà fatto in uno script di shell. Alla fine A e B saranno pari a $VARIABLES come questo:

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

ma non riesco nemmeno a far funzionare tutto questo senza variabili, come ad esempio:

/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

Ho utilizzato la sintassi direttamente da Stackoverflow 14058061 ma Ottengo questo risultato:

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

Ho anche trovato un articolo MacTech che suggeriva di usare replacing true così ho provato:

/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

ma continua a dire:

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

Si noti che stackoverflow # 12708195 Non sto cercando di indurre l'utente a farlo, ma idealmente vorrebbe che accadesse" automagicamente "come dicono i bambini.

Quindi ... cosa sto facendo di sbagliato e / o mancante? Provare a Google per informazioni sul codice di errore (-10000) mi dice che significa "AppleScript non riuscito", che non è tutto utile.

    
posta TJ Luoma 22.01.2014 - 21:36
fonte

1 risposta

1

Ho bisogno di fare ulteriori ricerche per farlo bene. Mi sento come se fosse vicino, ma il mele non mi piace ancora. Forse ti darà qualche idea finché non torno qui per dargli un'altra possibilità. A parte questo sarà molto più semplice quando si utilizza la finestra di dialogo Scegli file.

ecco il mio tentativo (ancora) non funzionante. Se non mi fai male, prova a finire la soluzione domani.

# 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
    
risposta data 21.02.2015 - 01:33
fonte

Leggi altre domande sui tag