我正在尝试创建一个循环脚本,它将获取父文件夹并查找所有子文件夹。这样我就可以一次拿一个并在它们上运行第二个脚本。
如果我正在寻找文本文件,这将有效。我想尝试使用它来查找文件夹,但不知道如何在这个方向上找到任何东西。
-- 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 :(得分: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 */
答案 1 :(得分:0)
find <dirname> -type d > subdirlist
您也不需要为find指定深度级别;它将一直持续到最后。实际上,如果你不希望它走得太远,你只能指定一个最大深度。
您也可以使用find循环作为处理脚本的基础。举个例子: -
find *.mp3 d.mp3 -type f | while read mp3s
do
echo $mp3s
<more commands>
done
答案 2 :(得分:0)
试试下面的内容:
find ./ -type d
答案 3 :(得分: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