0

私が作成できるよりもはるかに複雑な Applescript の質問があります。ここ数日検索してきましたが、このようなスクリプトは見つかりませんでした。また、私の限られた知識では、スクリプトをつなぎ合わせるのに十分な情報も見つかりませんでした。

構造化された名前を持つ複数のファイルがあります。各ファイルには、次の名前構造があります。

ttu_collectionname_000001.pdf
ttu_collectionname_000002.mp3
ttu_collectionname_000003.pdf ... など (これらのファイルはそれぞれファイルの種類が異なります。)

各元ファイルに関連付けられた csv メタデータ ファイルもあります。

ttu_collectionname_000001.csv
ttu_collectionname_000002.csv
ttu_collectionname_000003.csv …など(いずれもcsvファイルです。)

サブフォルダーとサブサブフォルダーを含むファイルの名前に基づいてフォルダーを作成する必要があります。各最上位フォルダ名は、番号順で一意になります。各サブおよびサブサブフォルダーの名前は、最上位フォルダーごとに同じになります。

フォルダー構造は次のようになります。

  • ttu_collectionname_000001
    • コンテンツ
      • 記録
      • 画面
    • メタデータ
      • 記録
      • 画面
  • ttu_collectionname_000002
    • コンテンツ
      • 記録
      • 画面
    • メタデータ
      • 記録
      • 画面

次に、各ファイルを特定のサブサブフォルダーに移動する必要があります。

ファイルttu_collectionname_000001.pdfは、 ttu_collectionname_000001/content/displayフォルダーに移動されます。

ファイルttu_collectionname_000001.csvは、 ttu_collectionname_000001/metadata/displayフォルダーに移動されます。

4

2 に答える 2

2

試す:

set myFolder to "Mac OS X:Users:stark:Main Folder"
tell application "Finder" to set myFiles to folder myFolder's files as alias list
repeat with aFile in myFiles
    tell application "System Events" to set {fileName, fileExt} to {name, name extension} of aFile
    set baseName to text 1 thru ((get offset of "." & fileExt in fileName) - 1) of fileName
    do shell script "mkdir -p " & (quoted form of (POSIX path of myFolder)) & "/" & baseName & "/{\"content\",\"metadata\"}/{\"display\",\"archive\"}"
    tell application "System Events"
        if fileExt is "pdf" then move aFile to (myFolder & ":" & baseName & ":content:display" as text)
        if fileExt is "csv" then move aFile to (myFolder & ":" & baseName & ":metadata:display" as text)
    end tell
end repeat
于 2013-01-25T18:51:25.063 に答える
0

ファイルが同じフォルダにあると仮定すると、 前

この AppleScript:

set pathToFolderOfTTUFiles to (path to the desktop as text) & "TTU:"
tell application "Finder"
    set theFiles to every item of folder pathToFolderOfTTUFiles whose name extension is not "csv" and kind is not "Folder"
    repeat with theFile in theFiles
        set lengthOfExtension to (length of (theFile's name extension as text)) + 1
        set fileNameWithoutExtension to text 1 through -(lengthOfExtension + 1) of (theFile's name as text)
        set theFolder to make new folder at folder pathToFolderOfTTUFiles with properties {name:fileNameWithoutExtension}

        set theContentFolder to make new folder at theFolder with properties {name:"content"}
        make new folder at theContentFolder with properties {name:"archive"}
        set theContentDisplayFolder to make new folder at theContentFolder with properties {name:"display"}
        set theMetadataFolder to make new folder at theFolder with properties {name:"metadata"}
        make new folder at theMetadataFolder with properties {name:"archive"}
        set theMetadataDisplayFolder to make new folder at theMetadataFolder with properties {name:"display"}

        move theFile to theContentDisplayFolder
        set pathToCSV to pathToFolderOfTTUFiles & fileNameWithoutExtension & ".csv"
        if exists pathToCSV then move pathToCSV to theMetadataDisplayFolder
    end repeat
end tell

これを作成します: 後

于 2013-01-25T18:47:13.023 に答える