Considere el uso de AppleScript en lugar de, o en combinación con, Automator. Automator no se adapta fácilmente a los flujos de trabajo que requieren ramas condicionales.
Las ramas condicionales son pasos dentro del flujo de trabajo que realizan una acción dependiendo de algún estado o situación. En este caso, si el archivo de vídeo está presente en la carpeta de destino.
AppleScript puede encargarse de este tipo de tareas, al igual que un perl script u otro lenguaje de scripting.
Ver ¿Puede Automator ramificarse en función del valor de una variable o del resultado de un paso? para un enfoque basado en script combinado con Automator.
Enfoque guionizado
Para tareas como ésta prefiero los lenguajes de scripting como el perl. A continuación hay un script</strkeep><strkeep> que debería servirte para empezar - o que otros pueden utilizar. No ha sido probado, así que trátalo con cuidado:
#!/usr/bin/env perl
use strict;
use warnings;
use File::Basename; # for fileparse
# WARNING: lack of error checking
# Use: ./move_srt.pl <path to source folder> <path to destination folder>
my $source_path = shift;
my $destination_path = shift;
# Get the video file names - without their 3 or 4 letter suffixes
my @destination_video_files = glob($source_path.'/*');
my %named_video_files = map { $_ => fileparse($_,qr/\..{3,4}/); } @destination_video_files;
# Get a list of srt files
my @source_srt_files = glob($source_path.'/*\.srt');
foreach my $source_srt_file (@source_srt_files) {
print "[Encountered] $source_srt_file\n";
# Strip suffix and check if video exists with same name
my $named_srt_file = fileparse($source_srt_file,qr/\.srt/);
if (exists($named_video_files{$named_srt_file})) {
# Move the matching srt File
system('/bin/mv '.$source_srt_file.' '.$destination_path);
print "[Matched] $source_srt_file\n";
} else {
print "[Unmatched] $source_srt_file\n";
}
}