2016-10-31 7 views
2

私はpowershellでregexに問題があります。私はそれがファイルを読んで、隣のカウンターで変数を場所の値に設定したいと思っています。その後の数は、プログラムを開くのにかかる時間です。powershellとregexの変数

こちらの方が良い場合は、教えてください。

ここで働いていない部分があります:

$count = 1 
Get-Content programs.txt | ForEach-Object{ 
    Set-Variable -Name raw_program -Value $_  
    if ($raw_program -match '.+?(?=,)'){ 
     Set-Variable -Name $program_$count -Value $matches[1] 
     write-host "Result : $program_$count" 
     $count += 1 
    } 
} 

とprograms.txt:

C:\Program Files (x86)\Telephony\CTI\bin\desktop.exe,7 
C:\Program Files (x86)\Cisco Systems\Cisco IP Communicator\communicatork9.exe,6 
C:\Program Files\Microsoft Office 15\root\office15\OUTLOOK.EXE,7 
~\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\CaseTemplateWPF,9 
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe,3 
C:\Program Files (x86)\Internet Explorer\iexplore.exe,6 

答えて

3

あなたのファイルは、本質的にヘッダを持つCSVで、なぜそのように扱いますか?

$programs = Import-Csv -Path programs.txt -Header Program,ProgramCount 

$programsオブジェクト、.Program性及び.ProgramCount性を有する各々の配列です。