gradle - 在Gradle中运行命令行不正确

标签 gradle cmd

以下是我的代码:

task encodeFile(type: Exec) {
    workingDir dirName
    def files = file(dirName).listFiles()
    files.each { File file ->
        if (file.isFile()) {
            println " *** $file.name *** "
            def tmpName = "tmp$file.name"
            println " === $tmpName"
            commandLine "cmd", "/c native2ascii $file.name $tmpName"
            commandLine "cmd", "/c del $file.name"
            commandLine "cmd", "/c move $tmpName $file.name"
//            commandLine "cmd", "/c move $file.name $tmpName"
            println " === $file.name is moved"
            println "----------------------------------"

//            """executable "native2ascii" "$file.name" "$tmpName""""".execute()
        }
    }
}

我正在尝试对指定文件夹下的所有文件进行编码以进行本地化。但是,当我运行上面的代码时,只有最后一个文件按预期进行了更改。我打印了一些消息,并且所有文件都被迭代。

有人知道这里会发生什么吗?

最佳答案

是的,在文件对象上调用的每个对象的最后一次迭代都可以使配置成功并赢得胜利-您可以更改传递来验证文件的顺序。
native2ascii任务默认是内置的gradle,您可以尝试例如:

task n2a {
   doLast {
      ant.native2ascii(
         src   : project.file('n2a-src'),
         dest  : project.file('n2a-dest') 
      )
   }
}

似乎没有必要通过Exec任务来执行此操作。

关于gradle - 在Gradle中运行命令行不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246140/

相关文章:

安卓工作室 : Cannot resolve symbol AsyncTask

ruby exec powershell 窗口

c++ - 如何将 STDIN 传递给子进程?

maven - 是否有相当于 “mvn dependency:analyze” 的 Gradle 插件?

java - 合并后与Lombok发生Gradle编译错误

java - Gradle 找不到 guava-*version*-cdi1.0.jar

php - ffmpeg 从视频错误中获取图像或缩略图

cmd- 逗号分隔参数 比起空格?

Windows 命令行上的 Unicode 输出?

Android 注释 gradle 警告