2015-12-09 163 views
1

我有这样的gradle这个构建脚本在它:从命令提示符运行时,为什么这个Gradle exec命令失败?

exec { 
    commandLine 'cmd', '/c', 'C:/cygwin64/bin/bash', '-lc', "'file /cygdrive/c'" 
} 

这失败,则会显示以下错误:

/usr/bin/bash: file /cygdrive/c: No such file or directory 

但是从命令提示符下执行这种直接,似乎很好地工作:

PS D:\s\u\deployment\backend> cmd /c C:/cygwin64/bin/bash -lc 'file /cygdrive/c' 
/cygdrive/c: directory 

为什么在我的gradle脚本中这不起作用?关于如何做这项工作的任何建议?

更一般地说,我想通过cygwin执行任意命令。

回答

1

请尝试:

exec { 
    commandLine 'cmd', '/c', 'C:/cygwin64/bin/bash', '-lc', 'file /cygdrive/c' 
} 

没有"周围'file /cygdrive/c'

+0

没想到要不要尝试和镜像的报价。谢谢! –

0

如果有人有兴趣位“通过Cygwin运行任意的命令”,我已经结束了:

import org.apache.tools.ant.taskdefs.condition.Os 
def isWindows() { 
    return Os.isFamily(Os.FAMILY_WINDOWS) 
} 

def runFromCommandLine (String... args) { 
    List<String> arguments 
    if (isWindows()) { 
     arguments = ['cmd', '/c', 'C:/cygwin64/bin/bash', '--login', '-c', args.join(' ')].toList() 
    } 
    else { 
     arguments = args.toList() 
    } 

    exec { 
     commandLine arguments 
    } 
}  

// usage 
runFromCommandLine('file', '/cygdrive/c') 
相关问题