写个Gradle脚本来干活--遍历&执行java命令

本文介绍了如何使用Gradle脚本遍历指定目录下的文件,并针对每个文件执行Java命令。主要内容包括:1) 使用files()、fileTree()方法遍历文件,2) 字符串处理,3) 通过execute()、task (type: Exec) {}和exec {}执行Java命令。文章提供了详细示例和注意事项,帮助读者掌握Gradle脚本的编写技巧。
摘要由CSDN通过智能技术生成

前言

上一篇写个批处理来帮忙干活—遍历&字符串处理中,我们已经学习如何写批处理脚本来帮我们做一些简单的重复性工作,本篇继续来学习如何用 Gradle 写脚本,让它也来帮我们干活

Gradle 脚本

需求场景跟上一篇一样,只是需要脚本能够帮我们遍历某个目录下的文件,然后分别针对每个文件执行 java 命令,再输出新的命名格式的文件即可,因此脚本涉及的方面仍然是:文件夹的遍历操作、字符串处理、执行 java 命令。下面开始学习吧:

1. 遍历指定文件夹下的文件

1.1 files()

命令

files(file1, file2, file3, file4...) .each {
  file ->
    println file.name
}

解释:files() 方法可以理解成一个集合,通过参数往集合中添加元素,只要能将需要遍历的目录下的所有文件都通过参数,传给 files(),那么就可以直接通过 .each 来遍历集合中的每个元素,达到遍历文件夹的目的

示例

完整示例.png

def dir = new File("C:\Users\suxq\Desktop\outputs")  
files(dir.listFiles()).each { file ->
    println file.name
}

gradle遍历示例.png

解释:可以结合 File 的 listFiles() 方法使用,这个方法刚好可以返回整个目录下的文件,刚好作为参数传给 files(),这样一来就可以达到遍历文件夹的目的了。

过滤:如果只想遍历目录下符合规则的文件,那么可以自定义过滤规则:

def outputs = file("C:\\Users\\suxq\\Desktop\\outputs")
files(dir.listFiles(new FilenameFilter() {
        @Override
        boolean accept(File dir, String name) {
            //自定义过滤规则
            return name.endsWith(".apk")
        }
    }))
.each { file ->
    println file.name
}    
1.2 fileTree()

命令

fileTree(dirPath).each { file ->
    println file.name
}

解释:fileTree 使用会比 files 更简单,只需要传入目录的路径,即可对目录下的文件进行遍历

示例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值