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

谢谢!

4

4 回答 4

0

试试下面:

find ./ -type d 
于 2013-11-05T09:49:46.093 回答
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 */

于 2013-11-04T17:49:52.817 回答
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
于 2014-05-14T14:06:44.443 回答
0
find <dirname> -type d > subdirlist

您也不需要为查找指定深度级别;它会一直持续到最后。如果您不希望它走得太远,您实际上只指定最大深度。

您也可以使用查找循环作为处理脚本的基础。举个例子:-

find *.mp3 d.mp3 -type f | while read mp3s
do 
echo $mp3s
<more commands>
done
于 2013-11-04T20:14:24.490 回答