2013-04-26 5 views
0

Сделано этот скрипт:Экспорт данных из сценария Perl в .txt файл

#!/usr/local/bin/perl 

#simple export from win-services with current state v. 0.1 

use Win32::Service; 

#hash-code for service reasons 
my %statcodeHash = (
    '1' => 'STOPPED', 
    '4' => 'RUNNING', 
    '7' => 'PAUSED' 
); 

my %serviceHash; 


#Going to get the data from services and export 

Win32::Service::GetServices("", \%serviceHash); 

foreach $key(keys %serviceHash){ 
    my %statusHash; 
    Win32::Service::GetStatus("", $serviceHash{$key}, \%statusHash); 
    if ($statusHash{"CurrentState"} =~ /[1-7]/){ 
      print $serviceHash{"$key"} . "THE SERVISE IS " . $statcodeHash{$statusHash{"CurrentState"}} . "\n"; 



    } 
} 

как я могу взять все данные, которые scrips дать мне, и поместить его в текстовый файл на жестком диске?

сценарии показывают, какие службы в моей системе и какие из них работают, а какие нет. я хочу экспортировать это текстовый файл

благодаря

ответ

0

вместо печати на STDOUT Вы должны напечатать его в файл для записи/добавляющим.

# initialize outside foreach loop, open file for appending 
open MYFILE, '>>', '/path/to/my/txtfile' or die("error writing to file $!"); 

# print to file 
print MYFILE $serviceHash{"$key"} . "THE SERVISE IS " . $statcodeHash{$statusHash{"CurrentState"}} . "\n"; 

Больше документации в perldoc

perldoc -f open 
perldoc -f print 
+0

его печать только первой строки, e.c только один сервис. почему не alL ??? –

+0

@Denis вы можете сбросить несколько строк% serviceHash? – erickb

+0

erickb, я заменил свою линию с вашим, он создает текстовый файл, но все, что я вижу, есть только этот WMPNetworkSvcTHE SERVISE РАБОТАЮЩЕГО , но если вы используете мою команду, она showes вам около 45 услуг, в ЦМДЕ line, но в .txt есть только один ... –