2012-06-15 204 views
2

我是Powershell的新手,並且有一個簡短的問題。 我正在玩的輸出來自以CSV格式的sysinternals.com autorunsc工具。 該腳本的用途是在CSV中搜索某些二進制名稱。將CSV數據導入CSV

進口都按預期,但我不能把它寫我的過濾信息

$IOCFiles = "es.dll", "null.sys" 

$data = import-csv "D:\autoruns.csv" -header("Entry_Location","Entry","Enabled","Category","Description","Publisher","Image_Path","Launch_String","MD5","SHA-1","SHA-256") 

foreach ($K in $data) 
{ 
    foreach($element in $IOCFiles) 
    { 
     if ($k.Image_Path -match $element) 
     { 
      $hits = $k.Entry + "   " + $K.Publisher + "   " + $K.Image_Path 
      $hits | export-csv -Path c:\HITS.csv -NoTypeInformation 
     } 
    } 
} 

以上不會產生在CSV的實際數據,但信息上的值的長度。 有一些很好的導入/導出的例子,但我沒有看到一個導入列。由於我正在玩類似的東西,我必須使用列導入方法。

謝謝!

回答

4

Powershell的做這樣的事情很簡單:

Import-csv "D:\autoruns.csv" -header("Entry_Location","Entry","Enabled","Category" | 
    Where-Object{($IOCFiles -match $_.Image_Path) -ne $null} | 
    Select-Object Entry, Publisher, Image_Path | 
    Export-CSV -Path c:\HITS.csv -NoTypeInformation 

我沒有來測試,現在這樣可能會有一些問題,它的時間,但是這是它的要點。

+0

謝謝。看起來我正在試圖做到這一點。似乎這可能會起作用。我將不得不調整它。似乎不想填充發布者和圖片路徑列。 – user1373685

+0

我錯過了代碼上的滾動條。只需添加您擁有的所有標題,即可清除它。 – EBGreen

+0

沒問題!我喜歡你的時間。 下面的代碼以我想要的方式構建CSV。現在唯一的問題是我想爲-match「null.sys」創建一個條目數組。 Import-csv「D:\ autoruns.csv」-header(「Entry_Location」,「Entry」,「Enabled」,「Category」,「Description」,「Publisher」,「ImagePath」,「Launch_String」,「MD5 」, 「SHA-1」, 「SHA-256」)| Where-Object {($ _。ImagePath -match「null.sys」)} | 選擇對象條目,發佈者,ImagePath | Export-CSV -Path c:\ HITS.csv -NoTypeInformation $ IOCFiles =「Explorer.exe」,「Notepad.exe」 – user1373685