在Powershell中转义以获取git日志

在Powershell中转义以获取git日志,powershell,git-log,Powershell,Git Log,我知道转义字符是(`),backtick,但即使我尝试使用它来转义test.txt 这在当时是出人意料的。 如何按照上述方式格式化git日志?如果在PowerShell v3上,请尝试以下操作: $out = git log ORIG_HEAD --% --no-merges --date=short --pretty="format:<tr><td>%h</td><td>%ad</td><td>%an</td>

我知道转义字符是(`),backtick,但即使我尝试使用它来转义<我得到的字符错误

git log ORIG_HEAD --no-merges --date=short --pretty="format:<tr><td>%h</td><td>%ad</td><td>%an</td><td>%s</td></tr>" > test.txt
< was unexpected at this time.
git log ORIG_HEAD--无合并--date=short--pretty=“格式:%h%ad%an%s”>test.txt
这在当时是出人意料的。

如何按照上述方式格式化git日志?

如果在PowerShell v3上,请尝试以下操作:

$out = git log ORIG_HEAD --% --no-merges --date=short --pretty="format:<tr><td>%h</td><td>%ad</td><td>%an</td><td>%s</td></tr>"
$out > test.txt
$out=git log ORIG\u HEAD--%--无合并--date=short--pretty=“格式:%h%ad%an%s”
$out>test.txt
--%将PowerShell置于更适合本机可执行文件的不同解析模式。有关更多详细信息,请参见此

如果您未使用PowerShell v3,我建议您使用中的echoargs查看git.exe从PowerShell接收的参数,例如:

PS> echoargs log ORIG_HEAD --no-merges --date=short --pretty="format:<tr><td>%h</td><td>%ad</td><td>%an</td><td>%s</td></tr>"
Arg 0 is <log>
Arg 1 is <ORIG_HEAD>
Arg 2 is <--no-merges>
Arg 3 is <--date=short>
Arg 4 is <--pretty=format:<tr><td>%h</td><td>%ad</td><td>%an</td><td>%s</td></tr>>

Command line:
"C:\Program Files (x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe"  log ORIG_HEAD --no-merges --date=short --pretty=format:<tr><td>%h</td><td>%ad</td><td>%an</td><td>%s</td></tr>
PS>echoargs log ORIG_HEAD--无合并--date=short--pretty=“格式:%h%ad%an%s”
arg0是
arg1是
arg2是
arg3是
arg4是
命令行:
“C:\Program Files(x86)\PowerShell Community Extensions\Pscx3\Pscx\Apps\EchoArgs.exe”日志源--无合并--日期=短--格式:%h%ad%an%s

如果您能看到PowerShell是如何将参数传递给exe的,您就有机会了解如何处理参数,这通常需要使用额外的引号。

对不起,这里是PowerShell 2