我正在使用方法从不同的csv文件中选择记录,我想知道如何创建一个空行为像csv文件的变量。对于实施例...实例化空csv变量
空数组将$array = @()
空哈希表将是$hashTable = @{}
一个非空的CSV对象将是$csvFileRecords = Import-Csv $someFileName
空CSV对象将是????
语法是什么?
我正在使用方法从不同的csv文件中选择记录,我想知道如何创建一个空行为像csv文件的变量。对于实施例...实例化空csv变量
空数组将$array = @()
空哈希表将是$hashTable = @{}
一个非空的CSV对象将是$csvFileRecords = Import-Csv $someFileName
空CSV对象将是????
语法是什么?
“CSV对象”实际上只是一个数组(psobject
s)。
$csvFileRecords = @()
将新记录添加到该数组,你只需要与对应于所需列具有适当的属性添加psobject
秒。创建具有所需属性的psobject
的一种方法是从散列表中获取。
$obj = new-object psobject -property @{fname="Fiddle";lname="Freak"}
$csvFileRecords += $obj
如果我想向数组添加如下记录,该怎么办? 'import-csv $ csvFile | %{If($ recordFound){$ record = $ _}}'。对于'$ record',我只需要做'$ csvFileRecords + = $ record'? –
是的,当你用'import-csv'导入的数组中的项迭代(使用'%{}'或'foreach-object {}')时,'$ _'将引用一个'psobject',你可以使用'+ ='轻松地添加到另一个数组中。下面这行会起作用:'$ csvFileRecords = @(); import-csv $ csvFile | %{If($ recordFound){$ csvFileRecords + = $ _}}'(假设你用有效的条件替换$ recordFound)。 – Thriggle
那么,CSV的无法从$空创建的,但你可以做这样的事情:
PS C:\> New-Object -TypeName System.Object | ConvertTo-Csv
#TYPE System.Object
但你的挑战是,这并不来回工作。例如:
PS U:\> ((New-Object -TypeName System.Int32) | ConvertTo-Csv).GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
指的ConvertTo-CSV的输出不为空,但是这显示了你已经失去了管道:
PS U:\> ((New-Object -TypeName System.Int32) | ConvertTo-Csv | ConvertFrom-csv).GetType()
You cannot call a method on a null-valued expression.
At line:1 char:1
+ ((New-Object -TypeName System.Int32) | ConvertTo-Csv | ConvertFrom-c ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
帮助说:
Inputs
System.Management.Automation.PSObject
You can pipe any object that has an Extended Type System (ETS) adapter to ConvertTo-CSV.
所以我敢打赌你的问题是$ null或者空白没有ETS适配器。
这里有一些这方面的更多阅读:https://blogs.msdn.microsoft.com/besidethepoint/2011/11/22/psobject-and-the-adapted-and-extended-type-systems-ats-and-ets/
有作为“CSV对象”没有这样的事 - '导入/ ConvertFrom-Csv'实例一些'在CSV使用数据构建了性能psobject's文件。术语中的“空csv对象”与空数组无法区分 –