git1
存储库有一个名为sports
的文件夹,其中还包含子文件夹和文件。我想复制由git diff
给出的command2
输出给出的文件
def command2 = "git diff --stat @{12.hours.ago}"
Process process = command2.execute(null, new File('C:/git1'))
def b=process.text
println b
Groovy控制台的输出为Sports/Cricket/Players/Virat.txt
现在我想在sourceDir
中使用此文件路径,如下所示。
def sourceDir = "C:/git1/$b"
def destinationDir = "D:/git1/$b"
(new AntBuilder()).copy(file: sourceDir, tofile: destinationDir)
这是错误Warning: Could not find file C:\git1\Sports\Cricket\Players\Virat.txt
复印。
答案 0 :(得分:0)
正如您在使用字节数组的注释中所看到的,字符串的最后一个字符是换行符(10)。这当然使路径无效,但在错误消息中不容易识别。在.trim()
之后添加.text
,它应该同时适用于AntBuilder
和Files
以及Windows和Linux。如果你在Windows上完成它,那么在10之前还会有13个。
另一种可能更好的方法是不要像你一样使用git diff
,因为这是一个瓷器命令。顾名思义,瓷器命令不稳定,它们的参数和输出可以随时改变。它们仅供人类使用,不适用于脚本。脚本应该使用在输入和输出方面更稳定的管道命令。使用相应的管道命令,您可能没有遇到问题。