我正在尝试使用Windows上的java程序在git命令下运行。
git --git-dir D:\code_coverage\.git blame 'src/RunCodeCoverage.java'
| grep e4ecfbe | awk '{print $7}'
它给了我错误:
fatal: cannot stat path '$7}'': No such file or directory
从命令提示符运行此命令时,它会根据需要提供结果。
请帮忙!
答案 0 :(得分:1)
在Windows中的CMD上,我可以使用 git --git-dir D:\code_coverage\.git blame 'src/RunCodeCoverage.java'
| grep e4ecfbe | awk "{print $7}"
参数的双引号使其工作:
awk.exe
请注意,我的String commandToBeExecuted="git --git-dir D:\code_coverage\.git blame 'src/RunCodeCoverage.java' | grep e4ecfbe | awk "{print $7}"'";
Process p = Runtime.getRuntime().exec(commandToBeExecuted);
来自Gnu On Windows。
OP提到在Java中使用该命令:
Process p = Runtime.getRuntime().exec(new String[]{"cmd", "/c", commandToBeExecuted);
但是你永远不会将所有参数作为单个字符串传递 使用数组,如" Using Quotes within getRuntime().exec"并在" How to make pipes work with Runtime.exec()?"
commandToBeExecuted
转义 commandToBeExecuted = "git --git-dir D:\code_coverage\.git blame 'src/RunCodeCoverage.java'
| grep e4ecfbe | awk \"{print $7}\""
中的双引号:
using (var ctx = new SchoolDBEntities())
{
var studentList = ctx.Students.SqlQuery("Select * from Student").ToList<Student>();
}