"cp src/*.txt dst/".execute().text ===> 时髦:000> 您可以看到命令执行时没有-6ren">
gpt4 book ai didi

Groovy 执行 "cp *"shell 命令

转载 作者:行者123 更新时间:2023-12-03 23:29:17 25 4
gpt4 key购买 nike

我想从 src/ 复制文本文件和仅文本文件至 dst/
groovy:000> "cp src/*.txt dst/".execute().text
===>
时髦:000>

您可以看到命令执行时没有错误,但文件 src/test.txt不会被复制到 dst/
这也失败了:

groovy:000> "cp src/* dst/".execute().text
===>
时髦:000>

然而...

"cp src/this.txt dst/".execute().text

作品

还,

"cp -R src/dst".execute().text

作品

为什么通配符似乎会导致我的命令无声无息地失败?

最佳答案

感谢 tedu 让我走到了一半。

我相信他的解决方案不起作用的原因是因为“逃避”问题。

例如...

"sh -c 'ls'".execute()

作品。但...

"sh -c 'ls'".execute()

才不是。

可能有一种方法可以在那里正确转义它,但我使用的解决方法是将字符串数组传递给 Runtime.getRuntime().exec

命令 = ["sh", "-c", "cp src/*.txt dst/"]
Runtime.getRuntime().exec((String[]) command.toArray())

作品精美!

关于Groovy 执行 "cp *"shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com