2016-05-21 13 views
0

Я мастерить с помощью сценария, который использует глотков для настройки сжатия файла JPEG удобно внутри Finder как служб. Он поддерживает файловые штампы, в отличие от простых функций сжатия/масштабирования Automator.регулировочных уровни сжатия JPEG со службой и глоткой Automator - спотыкается определенными именами файлов

Увы, он натыкается на определенные имена файлов, например. которые имеют пробел и не перемасштабируют их, по-видимому, потому, что выход файла дросселируется на символ пробела. Таким образом, он продолжается, как ожидалось, в файле типа «DSC03761.JPG», но не на «DSC03761 2.JPG». Он также терпит неудачу, если путь содержит пробелы, если, например, файл находится в папке «my Pictures».

Поскольку я нооб, я не понял, как настроить сценарий. У вас, вероятно, есть лучшая идея?

screenshot of script

Баш скрипт ниже:

for f in "[email protected]"; do 

# Save creation date time stamp of the target file in 't'. 
    t="$(/usr/bin/GetFileInfo -d "$f")" 

# Compress the target file. Level 0-100 or low/normal=50/high/best 
    filename=$f 
    #/usr/bin/sips --setProperty formatOptions 60 $f --out ${filename%.*}.jpg 
    /usr/bin/sips --setProperty formatOptions normal $f --out ${filename%.*}.jpg 

# Set the modified and creation date time stamps to 't'. 
    /usr/bin/SetFile -m "$t" "$f" 
    /usr/bin/SetFile -d "$t" "$f" 

done 

# Notify user that operation is finished with a sound. 
/usr/bin/afplay "/System/Library/Sounds/Purr.aiff" 
+0

Использовать переменные с '' '. – Cyrus

ответ

0

Здесь вы правильно, но unnecessaily процитировать расширение:

t="$(/usr/bin/GetFileInfo -d "$f")" 

Но здесь, где вам нужно будет использовать кавычки, вы дон 't:

/usr/bin/sips --setProperty formatOptions 60 $f --out ${filename%.*}.jpg 

Последним должно быть

/usr/bin/sips --setProperty formatOptions 60 "$f" --out "${filename%.*}.jpg" 
+0

Отлично, вот и все. Спасибо, что выпрямили мои кавычки. – SeanJ

 Смежные вопросы

  • Нет связанных вопросов^_^