0
如何閱讀使用get-content的csv列?如何閱讀列中的csv內容
如何閱讀使用get-content的csv列?如何閱讀列中的csv內容
在過去的一週中,我需要閱讀csv文件中的列,並且遇到了一些麻煩。然後我發現了讀取頭行的import-csv。所以我創建了一個腳本並希望給予其他人,以便他們也可以使用它。
Where-Object {$_.Severity -eq 5 -or $_.Severity -eq 4 -and $_.OS -like "Windows*" }
:
這個腳本讀取包含「IP」 csv文件的行,「可利用性」,「OS」和「嚴重性」,那麼,使用這樣的位置對象方法解析文件
這裏是腳本 - 修改和請欣賞:
#load assembly for file dialog box
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null;
#File dialog box to browse to file.
function diagbx()
{
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "Comma Separated Value (*.csv)|*.csv
$OpenFileDialog.ShowDialog()
$OpenFileDialog.filename
}
#get the results of the function
$file = diagbx;
#Check to see if diag was cancled.
if ($file[0] -eq "Ok")
{
#get the content of the file
$content = Import-Csv $file[1]
#create empty array variable to be accessed outside of conditional statement.
$ip = @()
#loop content and build into array
for ($i = 0; $i -lt $content.Count; $i++)
{
#Get data with only specified elements
$list = $content[$i] | Select-Object IP, Exploitability , OS , Severity | Where-Object {$_.Severity -eq 5 -or $_.Severity -eq 4 -and $_.OS -like "Windows*" }
#Check to see if the variable is not empty.
if ($list)
{
#Look up the IP Address and set in the array variable
$ip += [System.Net.Dns]::GetHostByAddress($list.ip).HostName.ToString()
}
}
#clean duplicate entries
$ip = $ip | select -Unique
#output to a txt file.
$ip | Out-File c:\List.txt -Append
}
#if cancled, notify the user and wait for a key press
Else
{
#write a notification to a user
Write-Host "You have cancled the request.`n `nPress any key to continue...";
#hold for a key press
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
雖然你想幫助社區是令人欽佩的。 'Import-CSV'和'Where-Object'都有很好的文檔。你有問題嗎?否則我沒有看到這增加了社區的價值。你的代碼中很大一部分也可以簡化。 – Matt 2014-09-04 16:23:22
您需要對其進行編輯以使其符合堆棧溢出格式。以問題的形式更改您的帖子,然後將您的腳本作爲單獨的答案提供。通常情況下,我會爲你編輯,但由於我不想爲你的工作留下功勞,所以我需要等待你自己來做。在此之前,我投票結束。 – 2014-09-04 16:25:10
更正。對於那個很抱歉。 – Fidelis 2014-09-04 17:32:28