2016-03-30 40 views
0

我正在尋找更好的方法來執行以下操作。如何避免在複雜的MDFIND命令中使用40個變量

我目前正在從文本文件中讀取多達40個字符串以構建用於此MDFIND命令的40個變量(僅顯示前2個aa_fN變量 - 其中N是從1到40的數字)。

mdfind -onlyin "/Users/username/Documents/AAA/" "( (kMDItemUserTags == 'Gray*'cdw) && ( (kMDItemDisplayName == '*$KMVAR_aa_f1*'c) || (kMDItemDisplayName == '*$KMVAR_aa_f2*'c) ) )" 

有沒有更好的方法來做到這一點,而無需使用40個變量?

+0

這一切都取決於什麼你想要處理40個你正在收集的字符串。如果您知道「一定」,他們都不會爲空,您可以創建一個包含40個項目的列表。只要你知道哪個是哪個,你就完成了。您也可以創建一個虛擬記錄,並使用您的結果填寫各個項目。 –

回答

0

在我看來,你想用一個循環,這樣的事情來處理這個......

repeat with i from 1 to 40 
    do shell script "mdfind -onlyin \"/Users/username/Documents/AAA/\" \"( (kMDItemUserTags == 'Gray*'cdw) && ( kMDItemDisplayName == '*$KMVAR_aa_f" & i & "*'c) )\"" 
    -- do something with rslts 
end repeat 

注:我沒有測試你原來的代碼錯誤