现在,我将一个大的.CSV文件导入到powershell中,并且当前仅将所有数据放入一个变量中。我的问题是如何做到这一点,所以我将每一列拆分为一个不同的变量?
我正在尝试为此使用ForEach-Object,但是我在Powershell上还很新,可以使用一些帮助。
当前代码
$file1 = Import-Csv -Path C:\Users\lin\Documents\EndpointScript.csv | select 'System Name', 'Product Version'| where 'Product Version' -eq '5.4.6.220'
$file2 = Import-Csv -Path C:\Users\lin\Documents\EndpointScript.csv | select 'Product Version'| where 'Product Version' -ne '5.4.6.220'
Write-Output $file1
"Up to Date: "; $file1.Count
"Out of Date: "; $file2.Count
"Todays Date: "; Get-Date -Format g
$file1 | export-csv C:\Users\lin\Documents\AgentReport.csv -NoTypeInformation
试图做这样的事情
$objectArray = Import-Csv -Path C:\Users\tlines\Documents\EndpointScript.csv
$file1 | ForEach-Object {
Attemping to do something like this
我希望每个列的数据都在不同的变量中,这样一来,只用其中一个列就可以轻松完成工作。
答案 0 :(得分:1)
您可以单独访问这些列,而无需将其放在专用变量中。 这是csv:
column1;column2;column3
1a;2a;3a
1b;2b;3b
1c;2c;3c
现在导入它,并使用点表示法单独访问列或通过管道将其选择对象:
$csv = Import-Csv -Path .\test.csv -Delimiter ";"
Write-Output "pipe to select-object to only retrieve a single property"
$csv | select column1
Write-Output "access the properties with dot notation"
$csv.column1
将其插入选择对象将返回psobjects数组。
($csv | select column3 -first 1).GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False PSCustomObject System.Object
点表示法将为您提供字符串数组。
$csv.column3[0].GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
答案 1 :(得分:0)
如果我猜对了,应该这样做:
class EmptyData: BindableObject {
let didChange = PassthroughSubject<EmptyData, Never>()
}
struct RandomViewGrandParent : View {
var body: some View {
RandomViewParent().environmentObject(EmptyData())
}
}
struct RandomViewParent : View {
@EnvironmentObject var emptyData: EmptyData
@EnvironmentObject var emptyData2: EmptyData
var body: some View {
RandomView()
}
}
struct RandomView : View {
@EnvironmentObject var emptyData: EmptyData
@EnvironmentObject var emptyData2: EmptyData
var body: some View {
Text("Hello World!")
}
}
这将返回两列:
$objectArray = Import-Csv -Path C:\Users\tlines\Documents\EndpointScript.csv
$objectArray | Group-Object 'Product Version' -NoElement
其中“名称”包含存在的版本号。