如何解决脚本结果>文本文件
| 我有以下两个脚本。我想在其中任一结果中创建一个文本文件 a)原始执行发生在同一目录中,或 b)在c:目录上 1)$sum = 0
foreach ($i in dir -filter *.log -Rec)
{
$sum += (gc $i.fullname | select -Skip 5 | ConvertFrom-Csv -Delimiter \"`t\" | ? {$_.Details -match \"^(\\d+)\"} |% {$matches[1]} | Measure-Object -Sum).Sum
}
$sum
[Console]::Write(\"Press any key to continue . . . \")
[Console]::ReadKey()
2)
foreach ($i in dir -filter *.log -Rec)
{
$cameras = gc $i.fullname | select -Skip 5 | ConvertFrom-Csv -Delimiter \"`t\" | group \"Entity \"
$cameras | select Name,@{n=\"Total\";e={ ($_.group | ? {$_.Details -match \"^(\\d+)\"} |% {$matches [1]} | Measure-Object -Sum).Sum}} | ? {$_.Total -gt 0}
}
[Console]::Write(\"Press any key to continue . . . \")
[Console]::ReadKey()
解决方法
@Chris Browne说的是,您可以使用CmdLet Out-File
我添加的内容是获取脚本执行目录:
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path;
$textFileName = $scriptPath + \"\\yourfile.txt\"
$sum | out-file -FilePath $textFileName
, 我相信您要查找的cmdlet称为Out-File。
http://technet.microsoft.com/zh-CN/library/ee176924.aspx
, 将$ sum或$ cameras用管道传输到Out-File cmdlet。要在当前目录中创建文件,只需传递文件名即可。要在C:驱动器中创建它,请通过完整路径:
$sum | Out-File -Path Results.txt
or
$sum | Out-File -Path .\\Results.txt
or:
$sum | Out-File -Path C:\\Results.txt
顺便说一句,您可以使用Write-Host cmdlet(而不是[Console] :: Write)将消息写到控制台,然后使用Read-Host cmdlet(而不是[Console] :: ReadKey)等待按键。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。