Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个gradleexec命令在命令提示符下运行时失败?_Gradle_Build_Cygwin_Build.gradle - Fatal编程技术网

为什么这个gradleexec命令在命令提示符下运行时失败?

为什么这个gradleexec命令在命令提示符下运行时失败?,gradle,build,cygwin,build.gradle,Gradle,Build,Cygwin,Build.gradle,我有一个gradle构建脚本,其中包含以下内容: 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

我有一个gradle构建脚本,其中包含以下内容:

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执行任意命令的方法。

请尝试:

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

请尝试:

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

如果没有
围绕
'file/cygdrive/c'

如果有人对“通过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')
import org.apache.tools.ant.taskdefs.condition.Os
def isWindows(){
返回Os.isFamily(Os.FAMILY\u WINDOWS)
}
def RUNFORMCANDLINE(字符串…参数){
列表参数
如果(isWindows()){
参数=['cmd'、'/c'、'c:/cygwin64/bin/bash'、'-login'、'-c',args.join('').toList()
}
否则{
arguments=args.toList()
}
执行官{
命令行参数
}
}    
//用法
runFromCommandLine('file','/cygdrive/c'))

如果有人对“通过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')
import org.apache.tools.ant.taskdefs.condition.Os
def isWindows(){
返回Os.isFamily(Os.FAMILY\u WINDOWS)
}
def RUNFORMCANDLINE(字符串…参数){
列表参数
如果(isWindows()){
参数=['cmd'、'/c'、'c:/cygwin64/bin/bash'、'-login'、'-c',args.join('').toList()
}
否则{
arguments=args.toList()
}
执行官{
命令行参数
}
}    
//用法
runFromCommandLine('file','/cygdrive/c'))

我没有想到不尝试镜像引用。谢谢我没有想到不尝试镜像引用。谢谢