使用powershell从csv文件读取数据,并在阵列中对每行数据进行strore
我想将每一行的数据读入一个数组,并将其传递给另一个工具,但无法这样做,因为我正在将所有列的数据收集到一起,例如列1的所有数据都出现了 结果如下使用powershell从csv文件读取数据,并在阵列中对每行数据进行strore,powershell,csv,row,Powershell,Csv,Row,我想将每一行的数据读入一个数组,并将其传递给另一个工具,但无法这样做,因为我正在将所有列的数据收集到一起,例如列1的所有数据都出现了 结果如下 #My script is as below $empdata = import-csv Log.csv ForEach ($Item in $empdata){ "FirstName = $($empdata.FirstName) LastName = $($empdata.LastName) Laptop = $($
#My script is as below
$empdata = import-csv Log.csv
ForEach ($Item in $empdata){
"FirstName = $($empdata.FirstName)
LastName = $($empdata.LastName)
Laptop = $($empdata.Laptop)
AccessCard = $($empdata.AccessCard)
Phone = $($empdata.Phone)
Building = $($empdata.Building)
Location = $($empdata.Location)"
Write-host $FirstName $LastName $Laptop $AccessCard $Phone $Building
$Location
$empdata.FirstName
=整个FirstName
列(所有行)
$item.FirstName
=foreach迭代中当前行的FirstName
值
$FirstName$LastName$Laptop$AccessCard$Phone$Building$Location
:在您的示例中,这些都是空的(并且不需要生成您想要的输出)您将管道对象设置为$Item
,但没有在foreach块中使用它。我们不知道您的CSV文件中有什么内容。请包括一个示例。谢谢Matt获得了它。将代码更改为FirstName=$($ID.FirstName)注意,您获得的输出与Import Csv Log.Csv | Format List
几乎相同。我希望在这个foreach
循环中得到的是每一行,而不是每一列。如何将每一行($item)作为可以添加属性的单个对象获取?@IfediOkonkwo$item
是行对象。您应该能够使用addmember
添加属性,例如:$item | add Member-MemberType NoteProperty-Name NewField-Value“duh”-Force
Hmmm,,我明白了。我尝试的是:$item.NewField=“duh”
。那没用。我想等我有空的时候,我会尝试添加成员。谢谢。虽然此代码可能提供问题的解决方案,但强烈建议您提供有关此代码为什么和/或如何回答问题的其他上下文。从长远来看,纯代码的答案通常会变得毫无用处,因为未来遇到类似问题的观众无法理解解决方案背后的原因。
FirstName = Suresh Krishna Shiva
LastName = setty Murthy Reddy
Laptop = Lenovo Lenovo Hp
AccessCard = yes No Yes
Phone = 123456789 45678932 12378945
Building = T4 P1 DT14
Location = Chennai Bangalore Hyderabad
FirstName = Suresh Krishna Shiva
LastName = setty Murthy Reddy
Laptop = Lenovo Lenovo Hp
AccessCard = yes No Yes
Phone = 123456789 45678932 12378945
Building = T4 P1 DT14
Location = Chennai Bangalore Hyderabad
FirstName = Suresh Krishna Shiva
LastName = setty Murthy Reddy
Laptop = Lenovo Lenovo Hp
AccessCard = yes No Yes
Phone = 123456789 45678932 12378945
Building = T4 P1 DT14
Location = Chennai Bangalore Hyderabad
I am trying to get data in the below format
FirstName = Suresh
LastName = setty
Laptop = Lenovo
AccessCard = yes
Phone = 123456789
Building = T4
Location = Chennai
$empdata = Import-Csv Log.csv
foreach ($item in $empdata) {
"FirstName = $($item.FirstName)
LastName = $($item.LastName)
Laptop = $($item.Laptop)
AccessCard = $($item.AccessCard)
Phone = $($item.Phone)
Building = $($item.Building)
Location = $($item.Location)"
}
#classiq method
import-csv "c:\temp\test.csv" | %{
"FirstName=$($_.FirstName)"
"LastName=$($_.LastName)"
"Phone=$($_.Phone)"
}
#other method with format
import-csv "c:\temp\test.csv" | %{
"FirstName={0}`nLastName={1}`nPhone={2}" -f $_.FirstName, $_.LastName, $_.Phone
}
Import-Csv .\Log.csv | ForEach-Object{
"
FirstName= $($_.FirstName) `n
LastName= $($_.LastName) `n
Laptop= $($_.Laptop) `n
AcessCard= $($_.AcessCard) `n
Phone= $($_.Phone) `n
Building= $($_.Building) `n
Location= $($_.Location)
"
}