【发布时间】:2013-10-03 14:30:56
【问题描述】:
我已经编写了一个 Applescript 来做我想做的事情。那就是:
根据文件名将文件从源文件夹移动到目标文件夹中子文件夹的子文件夹。
但我的问题是脚本中没有错误处理。
示例: 文件 “130299_1833_9_Actierondje Cantomobili Figo 400mm_LR.jpg”被放置在目标文件夹中子文件夹“0001833”的子文件夹“00009”中
但是,我希望脚本检查文件名的第二和第三部分是否实际上是数字/整数。如果它们不是数字/整数,则文件将移至错误文件夹,脚本将继续处理源文件夹的下一个文件。
示例: 文件 “130299_9_Actierondje Cantomobili Figo 400mm_LR.jpg”以及 将“130299_1833_Actierondje Cantomobili Figo 400mm_LR.jpg”放到错误文件夹中
我目前有以下 Applescript:
set source_folder to alias "Macintosh HD:Users:Roy:Desktop:_LR JPG's" --as alias
set destination_folder to "Macintosh HD:Users:Roy:Desktop:Produktcommunicatie test" as alias
set org_delimit to text item delimiters of AppleScript
tell application "Finder"
set source_files to files of source_folder
--display a dialog if there are no files to move
if number of source_files is 0 then
display dialog "There are no files to move" buttons {"OK"} default button 1
end if
repeat with this_file in source_files
--set the leveranciersnummer en modelnummer
set text item delimiters of AppleScript to {"_"}
set mgDocname to name of this_file
set mgLeveranciersnummer to text -7 thru -1 of ("0000000" & text item 2 of mgDocname)
set mgModelnummer to text -5 thru -1 of ("00000" & text item 3 of mgDocname)
--check if the folders already exist in the destination, if not, create the folders
if (exists folder mgLeveranciersnummer of folder destination_folder) is false then
make new folder at destination_folder with properties {name:mgLeveranciersnummer}
end if
set text item delimiters of AppleScript to org_delimit
set model_folder to destination_folder & mgLeveranciersnummer as string
--set model_folder to alias model_folder
if (exists folder mgModelnummer of folder model_folder) is false then
make new folder at model_folder with properties {name:mgModelnummer}
end if
set final_path to model_folder & ":" & mgModelnummer as string
move this_file to final_path with replacing
end repeat
--display a dialog if the all the files are moved
display dialog "All the files are moved to " & destination_folder buttons {"Thanks!"} default button 1
end tell
【问题讨论】:
-
所以基本上你只需要看看它们是否是数字......看看这篇文章stackoverflow.com/questions/918493/…
-
这确实是我想要做的,但如果脚本无法将变量设置为数字,我将无法让脚本继续处理下一个文件。
-
我没有在你的脚本中看到你正在测试数字
-
你是对的,但我确实对此进行了一些测试。我已经发布了最终的工作脚本。
标签: error-handling applescript filenames move subdirectory