Yo estoy tratando de hacer que la compresión de un archivo de vídeo utilizando el Freno de mano más fácil a través de applescript y han estado basando la mayor parte del código de las plantillas que he encontrado.
En este punto en el código, el usuario ha especificado en el archivo de origen y la carpeta de destino.
En lugar de HandBrakeCLI ciegamente sólo sobrescribir un archivo con el mismo nombre en la carpeta de destino, quería Buscador de hacer un cheque y, si un archivo con el mismo ya existe en la carpeta de destino, entonces yo quería tener el nombre de archivo que se anexa con la fecha y hora actuales antes de la extensión.
Todo funcionaba bien hasta que empecé a añadir el "si existe" el código.
He aquí el fragmento de código:
tell application "Finder"
set newFilepathPOSIX to POSIX path of dest_folder
set newFilepathPOSIX to newFilepathPOSIX & "video.mp4"
-- Check if file with same name exists
if exists file newFilepathPOSIX then
display dialog "There is already a file named \"video.mp4\". Do you want to replace the file?" buttons {"Quit", "No", "Yes"} cancel button 1
if result = {button returned:"No"} then
set newFilepathPOSIX to POSIX path of dest_folder
set newFilepathPOSIX to newFilepathPOSIX & "video" & getDateAsString & ".mp4"
end if
end if
set newFilepathPOSIX to quoted form of newFilepathPOSIX
set shellCommand to "/Volumes/Flash Drive/HandBrakeCLI -i " & origFilepathPOSIX & " -o " & newFilepathPOSIX & " --preset=\"Classic\""
end tell
to getDateAsString from t
set creationDateString to year of t as string
set creationDateString to creationDateString & text -2 thru -1 of ("0" & getMonthNum(t) as string)
set creationDateString to creationDateString & text -2 thru -1 of ("0" & day of t as string)
set creationDateString to creationDateString & text -2 thru -1 of ("0" & hours of t as string)
set creationDateString to creationDateString & text -2 thru -1 of ("0" & minutes of t as string)
set creationDateString to creationDateString & text -2 thru -1 of ("0" & seconds of t as string)
return creationDateString
end getDateAsString
Esto es lo que devuelve:
exists file "/Users/me/Box Documents/My Folder/video.mp4"
--> false
Si puedo añadir "como POSIX archivo" a la de "si existe" la línea, esto es lo que devuelve:
get file "/Users/me/Box Documents/My Folder/video.mp4"
--> error number -1728 from file "/Users/me/Box Documents/My Folder/video.mp4"
exists file "My HD:Users:me:Box Documents:My Folder:video.mp4"
--> true
display dialog "There is already a file named \"video.mp4\". Do you want to replace the file?" buttons {"Quit", "No", "Yes"} cancel button 1
--> {button returned:"No"}
Después de esto, se produjo un error.
Totalmente nuevo en esto así que espero que os he dado suficiente detalle sin ceder demasiado detalle.