2015-08-01 6 views
0

так что, когда этот вопрос был о том, что я просто забыл изменить new file на new folder. (Потому что я просто скопировать, вставили код несколько раз.) Что касается к ответу vadian, вот новый код (под редакцией):Applescript - новый файл SHORTEST WAY

property rustItems : {"Render.plist", "KleurInstellingen.txt", "Vrienden.txt", "Vijanden.txt", "Rust-Python-Embed.py", ¬ 
    "Std__PATH.plist", "CargoRun.sett", "Rust-Package.fix", "Rust-Package-Auto.app", ¬ 
    "Rust-PKG.pkg", "Project-Layout.jar", "Run-EXP.gib", "Radar.jar"} 

property displayItems : {"Commons-io-2.4.jar", "commons-io-2.4.jar.sha", "Lastlog.log.gz", "Lastlog2.log.gz", ¬ 
    "windows.pkg", "ModuleSettings.pkg", "ModuleStates.pkg", "ColorBinds.pkg", "ModsReturn.pkg", "Textures_1.png", "Textures_2.png", "Textures_3.png"} 

property jortpepeItems : {"Rust.class", "Rust$1.class"} 
property utilityItems : {"Layout.class", "XYZ__Layout.class"} 
property managerItems : {"Restrictions.class", "MAX__DELAY.class"} 
property listenerItems : {"OtherEvents.class", "PlayerEvents.class", "PlayerEvents$1.class", ¬ 
    "PlayerChat.class", "PlayerChat$1.class"} 

set chosenfolder to choose folder with prompt "Choose the Game folder to install the mods." 

tell application "Finder" 
    if exists folder "Rust$1" of chosenfolder then delete folder "Rust$1" of chosenfolder 
    set modsFolder to make new folder at chosenfolder with properties {name:"Rust$1"} 
    repeat with anItem in rustItems 
     make new file at modsFolder with properties {name:anItem} 
    end repeat 
    set displayFolder to make new folder at modsFolder with properties {name:"Display"} 
    repeat with anItem in displayItems 
     make new file at displayFolder with properties {name:anItem} 
    end repeat 
    set jortpepeFolder to make new folder at modsFolder with properties {name:"jortpepe"} 
    repeat with anItem in jortpepeItems 
     make new file at jortpepeFolder with properties {name:anItem} 
    end repeat 
    set utilityFolder to make new folder at jortpepeFolder with properties {name:"Utilities"} 
    set managerFolder to make new folder at jortpepeFolder with properties {name:"Managers"} 
    set listenerFolder to make new folder at jortpepeFolder with properties {name:"Listeners"} 
    repeat with anItem in utilityItems 
     make new file at utilityFolder with properties {name:anItem} 
    end repeat 
    repeat with anItem in managerItems 
     make new file at managerFolder with properties {name:anItem} 
    end repeat 
    repeat with anItem in listenerItems 
     make new file at listenerFolder with properties {name:anItem} 
    end repeat 
end tell 
end 

Спасибо за чтение.

Jort

PS: Если вы знаете другое расширение файла можно добавить как .class .txt .pkg и т.д., пожалуйста, дайте комментарий к этому вопросу с этим другим расширением файла. (Поскольку я все еще хочу создать большую фальшивую библиотеку и с реальными существующими именами файлов, она выглядит лучше: P)

+0

.pdf, .rtf, .xml, .html, .rb (рубин), .py (питон) – vadian

ответ

1

Не совсем ответ, но улучшение.

Это более короткая версия вашего скрипта, использующая списки и повторяющиеся циклы. Вместо ветвления ошибки, повторяющей весь код для создания структуры, он проверяет, существует ли папка mods и удаляет ее, если необходимо, перед созданием элементов.

property modsItems : {"Render.plist", "KleurInstellingen.txt", "Vrienden.txt", "Vijanden.txt", "Rust-Python-Embed.pyth", ¬ 
    "Std__PATH.plist", "CargoRun.sett", "Rust-Package.fix", "Rust-Package-Auto.app", ¬ 
    "Rust-PKG.pkg", "Project-Layout.jar", "Run-EXP.gib", "Downloaded.txt", "Enttree.jar", "Radar.jar"} 

property displayItems : {"Commons-io-2.4.jar", "commons-io-2.4.jar.sha", "Lastlog.log.gz", "Lastlog2.log.gz", ¬ 
    "windows.pkg", "ModuleSettings.pkg", "ModuleStates.pkg", "ColorBinds.pkg", "ModsReturn.pkg", "Textures_1.png", "Textures_2.png", "Textures_3.png"} 

property jortpepeItems : {"Rust.class", "Rust$1.class"} 
property utilityItems : {"Layout.class", "XYZ__Layout.class"} 
property managerItems : {"Restrictions.class", "MAX__DELAY.class"} 
property listenerItems : {"OtherEvents.class", "PlayerEvents.class", "PlayerEvents$1.class", ¬ 
    "PlayerChat.class", "PlayerChat$1.class"} 

set chosenfolder to choose folder with prompt "Choose the Game folder to install the mods." 

tell application "Finder" 
    if exists folder "mods" of chosenfolder then delete folder "mods" of chosenfolder 
    set modsFolder to make new folder at chosenfolder with properties {name:"mods"} 
    repeat with anItem in modsItems 
     make new file at modsFolder with properties {name:anItem} 
    end repeat 
    set displayFolder to make new folder at modsFolder with properties {name:"Display"} 
    repeat with anItem in displayItems 
     make new file at displayFolder with properties {name:anItem} 
    end repeat 
    set jortpepeFolder to make new folder at modsFolder with properties {name:"jortpepe"} 
    repeat with anItem in jortpepeItems 
     make new file at jortpepeFolder with properties {name:anItem} 
    end repeat 
    set utilityFolder to make new folder at jortpepeFolder with properties {name:"Utilities"} 
    set managerFolder to make new folder at jortpepeFolder with properties {name:"Managers"} 
    set listenerFolder to make new folder at jortpepeFolder with properties {name:"Listeners"} 
    repeat with anItem in utilityItems 
     make new file at utilityFolder with properties {name:anItem} 
    end repeat 
    repeat with anItem in managerItems 
     make new file at managerFolder with properties {name:anItem} 
    end repeat 
    repeat with anItem in listenerItems 
     make new file at listenerFolder with properties {name:anItem} 
    end repeat 
end tell 
+0

Wow спасибо, я никогда не ново, что это было возможно, таким образом! Однако исходный скрипт был слегка отредактирован. Я редактировал свой вопрос на ваш скрипт. И отредактировал ваш скрипт на моем (втором) оригинальном скрипте ... Вау .. странное предложение ... – jortpepe

0

У меня уже есть ответ. В сценарии вы увидите этот код:

set thisfolder6 to make new file at thisfolder3 with properties {name:"Listeners"} 

И я забыл изменить new file к new folder (я просто копировать, вставлять, копировать, вставлять и т.д.)

Так что теперь фиксированный код является:

set thisfolder6 to make new folder at thisfolder3 with properties {name:"Listeners"} 

(Я также изменил это для других строк)

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

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