首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java程序执行git故障诊断命令

使用java程序执行git故障诊断命令
EN

Stack Overflow用户
提问于 2015-07-03 13:30:55
回答 1查看 165关注 0票数 2

我正在尝试运行下面的git命令使用java程序在windows上。

代码语言:javascript
复制
 git --git-dir D:\code_coverage\.git blame  'src/RunCodeCoverage.java'
 | grep e4ecfbe | awk '{print $7}'

它会给我一个错误:

代码语言:javascript
复制
fatal: cannot stat path '$7}'': No such file or directory

当从命令提示符运行此命令时,它会给出所需的结果。

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2015-07-03 13:36:18

在Windows中的CMD上,我可以对awk参数使用双引号使其工作:

代码语言:javascript
复制
 git --git-dir D:\code_coverage\.git blame  'src/RunCodeCoverage.java'
 | grep e4ecfbe | awk "{print $7}"

请注意,我的awk.exe来自Gnu On Windows

这个OP提到在Java中使用该命令:

代码语言:javascript
复制
String commandToBeExecuted="git --git-dir D:\code_coverage\.git blame 'src/RunCodeCoverage.java' | grep e4ecfbe | awk "{print $7}"'"; 
Process p = Runtime.getRuntime().exec(commandToBeExecuted);

但是您永远不会将所有参数作为一个字符串进行传递。

使用数组,例如在"Using Quotes within getRuntime().exec“和"How to make pipes work with Runtime.exec()?”中

代码语言:javascript
复制
Process p = Runtime.getRuntime().exec(new String[]{"cmd", "/c", commandToBeExecuted);

转义commandToBeExecuted中的双引号

代码语言:javascript
复制
 commandToBeExecuted = "git --git-dir D:\code_coverage\.git blame  'src/RunCodeCoverage.java'
 | grep e4ecfbe | awk \"{print $7}\""
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31199139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档