Результат скрипта> Текстовый файл - PullRequest
0 голосов
/ 12 июня 2011

У меня есть следующие два сценария. Я хотел бы создать текстовый файл с результатами либо

a) тот же каталог, в котором происходило первоначальное выполнение, или

б) В каталоге 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 ]

1 голос
/ 12 июня 2011

@Chris Browne говорит, что вы можете использовать CmdLet Out-File

Я добавляю для получения каталога исполняемых скриптов:

$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path;
$textFileName = $scriptPath + "\yourfile.txt"
$sum | out-file -FilePath $textFileName 
0 голосов
/ 12 июня 2011

Передайте $ sum или $ камеры в командлет Out-File.Для создания файла в текущем каталоге передайте только имя файла.Чтобы создать его на диске C: введите полный путь:

$sum | Out-File -Path Results.txt

or 

$sum | Out-File -Path .\Results.txt

or:

$sum | Out-File -Path C:\Results.txt

Кстати, вы можете записывать сообщения на консоль с помощью командлета Write-Host (вместо [Console] :: Write,и дождитесь нажатия клавиши с помощью командлета Read-Host (вместо [Console] :: ReadKey).

0 голосов
/ 12 июня 2011

Я считаю, что искомый командлет называется Out-File.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...