Я знаю, что на это был в основном ответ, и автомат с сценарием оболочки (Sanitize Filenames) прекрасно работает, но мне нужно, чтобы он также делал все подпапки. И, если возможно, обрежьте имя файла до 50 символов, сохранив расширение файла. Я нашел строку кода bash, которая усекала файл, но также лишала расширения, и это плохо работает при переносе этих файлов с Mac на Windows.
Сценарий, как он есть, это
for f in "$1"/*; do
dir=$(dirname "$f")
file=$(basename "$f")
mv "$f" "${dir}/${file//[[:cntrl:]\\\/:*?\"<>|]/_}"
done
Я не против использования яблочного скрипта в automator для выполнения этой задачи.