脚本结果>文本文件

时间:2011-06-12 06:59:57

标签: text powershell export

我有以下两个脚本。我想在

中创建一个带有结果的文本文件

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()

3 个答案:

答案 0 :(得分:1)

@Chris Browne说的是你可以使用CmdLet Out-File

我添加的内容是获取脚本执行目录:

$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path;
$textFileName = $scriptPath + "\yourfile.txt"
$sum | out-file -FilePath $textFileName 

答案 1 :(得分:0)

我相信您正在寻找的cmdlet称为Out-File。

http://technet.microsoft.com/en-us/library/ee176924.aspx

答案 2 :(得分:0)

将$ 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)。