2015-07-30 2 views
1

Я хотел бы создать applescript, который будет создавать несколько папок с тем же корневым именем, но числа меняются? или, по крайней мере, сценарий создания повторяющихся папок, пока у человека не будет достаточно папок. Итак, что-то, что делает такие папки: JOYR-15-0035-00, JOYR-15-0036-00, JOYR-15-0037-00 и т. Д. Это возможно? Я просто изучаю это. Я, как правило, графический дизайнер, но я чувствую, что могу получить много от applescript.applescript для создания нескольких последовательно пронумерованных папок с определенным префиксом

В настоящее время я просто этот базовый сценарий:

tell application "Finder" 
    set KDID to text returned of (display dialog "Enter the KDID ID:" default answer "JOYR-") 
    set loc to choose folder "Choose Parent Folder Location" 
    set newfoldername to {name:KDID} 
    set newfo to make new folder at loc with properties {name:KDID} 
    reveal newfo 
end tell 

ответ

0

Попробуйте это, он предполагает, что KDID только число 15 в примере, синтаксис всегда JOYR-<KDID>-<consecutive number>-00 и ведущий JOYR, а также завершающего двойной ноль не изменяется.

Сценарий запрашивает родительскую папку, KDID и количество последовательных папок. Затем он проверяет родительскую папку на наибольший существующий номер (часть 0035) и создает папки, начинающиеся с наибольшего числа плюс 1 или - если существующие папки не найдены - с 1. Номер всегда состоит из четырех цифр.

property letterPrefix : "JOYR" 
property KDID : "15" 
property parentFolder : missing value 

set parentFolder to choose folder "Choose Parent Folder Location" 
tell application "Finder" 
    activate 
    set KDID to text returned of (display dialog "Enter the KDID ID:" default answer "15") 
    repeat 
     set howManyFolders to text returned of (display dialog "Enter the Number of Folders to create:" default answer "1") 
     try 
      set howManyFolders to howManyFolders as integer 
      if howManyFolders < 1 then error 
      exit repeat 
     on error 
      display dialog "Please enter an integer value greater than 0" default answer "1" 
     end try 
    end repeat 
    set currentNumber to my getGreatestFolderNumber() 
    repeat howManyFolders times 
     set folderName to letterPrefix & "-" & KDID & "-" & my pad(currentNumber) & "-00" 
     make new folder at parentFolder with properties {name:folderName} 
     set currentNumber to currentNumber + 1 
    end repeat 
    open parentFolder 
end tell 

on getGreatestFolderNumber() 
    tell application "Finder" 
     set {ASTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "-"} 
     try 
      set folderNames to name of folders of parentFolder whose name starts with (letterPrefix & "-" & KDID & "-") 
      set maxNumber to 0 
      repeat with aName in folderNames 
       set curNumber to (text item 3 of aName) as integer 
       if curNumber > maxNumber then set maxNumber to curNumber 
      end repeat 
      set AppleScript's text item delimiters to ASTID 
      return maxNumber + 1 
     on error 
      set AppleScript's text item delimiters to ASTID 
      return 1 
     end try 
    end tell 
end getGreatestFolderNumber 

on pad(v) 
    return text -4 thru -1 of ("000" & v) 
end pad 
Смежные вопросы