2013-11-04 61 views
0

我想做一個循環腳本,將父文件夾,並找到所有的子文件夾。這樣,我可以一次拿一個,然後在其上運行第二個腳本。查找和列出所有子文件夾,但沒有別的

這將工作,如果我在尋找文本文件。我想嘗試使用它來查找文件夾,但不知道如何在該方向上找不到任何內容。

-- Search for Subfolder 
set ParentPath to choose folder 
set allFiles to (do shell script "find " & quoted form of POSIX path of ParentPath & " -iname \"*.eps\"")) 


-- Process files 
repeat with nFile in allFiles 
    my runScript(nFile) 
end repeat 

理論上會是這樣。

-- Search for Subfolder 
set ParentPath to choose folder 
set allFiles to all folders inside ParentPath 


-- Process files 
repeat with nFile in allFiles 
    my runScript(nFile) 
end repeat 

謝謝!

回答

0

發現這個完美的作品。

set ParentPath to (choose folder) as string 
set FolderList to {} 
tell application "System Events" 
    set ItemList to disk items of folder ParentPath 
    repeat with CurrentItem in ItemList 
     if (class of CurrentItem) = folder then 
      set end of FolderList to ((path of CurrentItem) as alias) 
     end if 
    end repeat 
end tell 
0

使用bash,你會說:

shopt -s globstar nullglob 
# the trailing slash below restricts matches to directories. 
for dir in **/; do 
    some command with "$dir" 
done 

這遞歸地查找當前目錄下的所有目錄。如果你只是尋找當前目錄的子目錄中:for dir in */

0
find <dirname> -type d > subdirlist 

你並不需要指定查找深度級別,要麼;它會一直持續下去。如果你不想太過分,你只能指定一個最大深度。

您也可以使用find循環作爲處理腳本的基礎。舉一個例子: -

find *.mp3 d.mp3 -type f | while read mp3s 
do 
echo $mp3s 
<more commands> 
done 
0

剛剛嘗試下面:

find ./ -type d 
+0

我在applescript寫這個。這將如何被格式化成一個do shell腳本? –

+0

@Tim Joe所以你的意思是你想通過applescript實現這個? – Nancy

+0

正確。沒有formillar,但我知道這將是一個do shell腳本(「find」./ -type d) –

相關問題