我正在使用方法從不同的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對象」與空數組無法區分 –