运行 svn info & findstr in powershell 然后保存到变量
Run svn info & findstr in powershell then save to variable
我们如何在 powershell 脚本中 运行 以下批处理脚本语句(或那些行中的内容)并将输出保存到变量。
我们不一定要使用 cmd/batch 命令,等效的 powershell 命令就可以了。
svn info --xml pathToRepo\product | findstr /v ^<^?
大概是这样的
$svnInfoOutput = svn info --xml pathToRepo\product | findstr /v ^<^? | Out-Null
所以现在显示 $svnInfoOutput 应该显示:
<info>
<entry
kind="dir"
path="path"
revision="647524">
<url>http://url</url>
<relative-url>^/url</relative-url>
<repository>
<root>http://urlroot</root>
<uuid>593eaae0-013a-</uuid>
</repository>
<wc-info>
<wcroot-abspath>absPath</wcroot-abspath>
<schedule>normal</schedule>
<depth>infinity</depth>
</wc-info>
<commit
revision="6297">
<author>zz</author>
<date>2014-12-15T09:21:29.369584Z</date>
</commit>
</entry>
</info>
我们可以对任何 match/non 匹配项使用 Select-字符串:Select-String -NotMatch '<?xml'
要将命令的输出传递给变量,最简单的方法是使用 2>&1
所以将它们组合在一起应该会得到您正在寻找的输出:
$svnInfoOutput = svn info --xml pathToRepo\product | Select-String -NotMatch '<?xml' 2>&1
[xml]$svnInfoOutput = svn info --xml pathToRepo\product
$svnInfoOutput
现在是一个对象,您可以像对待任何其他对象一样对待它,查看每个节点的属性(包括属性)。
$svnInfoOutput.info.entry
会给你一个格式化的列表,描述上面XML中entry
节点的属性和节点内容。您可以使用 $svnInfoOutput.info.entry.revision
进一步查询这些值以获取修订号(例如)。
我们如何在 powershell 脚本中 运行 以下批处理脚本语句(或那些行中的内容)并将输出保存到变量。 我们不一定要使用 cmd/batch 命令,等效的 powershell 命令就可以了。
svn info --xml pathToRepo\product | findstr /v ^<^?
大概是这样的
$svnInfoOutput = svn info --xml pathToRepo\product | findstr /v ^<^? | Out-Null
所以现在显示 $svnInfoOutput 应该显示:
<info>
<entry
kind="dir"
path="path"
revision="647524">
<url>http://url</url>
<relative-url>^/url</relative-url>
<repository>
<root>http://urlroot</root>
<uuid>593eaae0-013a-</uuid>
</repository>
<wc-info>
<wcroot-abspath>absPath</wcroot-abspath>
<schedule>normal</schedule>
<depth>infinity</depth>
</wc-info>
<commit
revision="6297">
<author>zz</author>
<date>2014-12-15T09:21:29.369584Z</date>
</commit>
</entry>
</info>
我们可以对任何 match/non 匹配项使用 Select-字符串:Select-String -NotMatch '<?xml'
要将命令的输出传递给变量,最简单的方法是使用 2>&1
所以将它们组合在一起应该会得到您正在寻找的输出:
$svnInfoOutput = svn info --xml pathToRepo\product | Select-String -NotMatch '<?xml' 2>&1
[xml]$svnInfoOutput = svn info --xml pathToRepo\product
$svnInfoOutput
现在是一个对象,您可以像对待任何其他对象一样对待它,查看每个节点的属性(包括属性)。
$svnInfoOutput.info.entry
会给你一个格式化的列表,描述上面XML中entry
节点的属性和节点内容。您可以使用 $svnInfoOutput.info.entry.revision
进一步查询这些值以获取修订号(例如)。