You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用脚本在子文件夹目录树中批量执行(仅单次执行)

一次性在目录树所有子文件夹执行脚本的方法

嘿,这事儿好办,给你几个实用的一次性解决方案,分不同系统场景给你说清楚~

Linux/macOS/Windows WSL 用Bash实现

递归处理所有嵌套子文件夹

如果你的脚本是my_script.sh,要让它在当前目录下的每一层子文件夹里都执行一次,直接跑这个命令就行:

find . -type d -exec sh -c 'cd "$0" && /绝对路径/到你的/my_script.sh' {} \;

几个关键说明:

  • find . -type d:会扫遍当前目录(.)下所有的子目录,包括嵌套很深的那种
  • -exec ... {} \;:把每个找到的目录路径传给后面的命令执行
  • cd "$0":切换到当前遍历到的子目录里,这样脚本就会在该目录下生效
  • 把/绝对路径/到你的/my_script.sh换成你脚本的真实路径,要是脚本就在当前根目录,也可以用./my_script.sh,但用绝对路径不容易出错

只处理直接子文件夹(不嵌套)

如果不需要处理深层嵌套的子目录,只针对当前目录下的一级子文件夹,用简单的for循环更直观:

for dir in */; do
    cd "$dir" && /绝对路径/到你的/my_script.sh && cd ..
done

Windows 用PowerShell实现

如果你是Windows系统,用PowerShell来做也很简单:

Get-ChildItem -Directory -Recurse | ForEach-Object {
    Set-Location $_.FullName
    & "C:\绝对路径\到你的\脚本文件.ps1"
    Set-Location ..
}

解释一下:

  • Get-ChildItem -Directory -Recurse:递归获取当前目录下所有子目录
  • ForEach-Object:逐个遍历这些目录
  • Set-Location:切换到目标子目录
  • &:PowerShell里用来执行脚本文件的操作符,后面跟上脚本的绝对路径就行

几个小提醒

  • 先给脚本加执行权限:Linux/macOS下跑chmod +x /你的脚本路径/my_script.sh,不然会提示权限不够
  • 建议先找个测试目录试一遍,确认没问题再在真实目录执行,避免误操作
  • 如果脚本需要传参数,直接在命令里加就行,比如/脚本路径/my_script.sh 参数1 参数2

内容的提问来源于stack exchange,提问作者wade812

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:22:20