为什么我在任何.csv文件的Power-shell控制台中(Get-Content $CSV1)[2]
我得到了这个字段,但当我在ISE中这样做时,我得到这样的错误。
$CSV1 = Import-Csv "C:\Users\Administrator\Documents\lab8\usersF.csv"
(Get-Content $CSV1)[2]
usersF.csv内容
GivenName
Ylnum
Dexcd
Igbos
Rzjlr
错误
Cannot index into a null array.
At C:\Users\Administrator\Documents\lab8\ovie_lab7_merged.ps1:5 char:1
+ (Get-Content $CSV1)[2]
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
我已经尝试了解决方案@TheIncorrigible1给了我它工作,但现在我想将该数据导出到.csv而不是字符串我得到.csv文件中的字符串长度我该如何修复此?
$CSV1 = Import-Csv -Path "C:\Users\Administrator\Documents\lab8\usersF.csv"
$test = $CSV1.GivenName[4]
$test | Export-Csv "C:\Users\Administrator\Documents\lab8\test.csv"
#TYPE System.String
Length
5
答案 0 :(得分:2)
所以你遇到的问题是一个简单的类型理解问题。
Import-Csv
获取您提供给它的路径并将其导入PSCustomObject
。您正尝试Get-Content -Path [PSCustomObject]
,但这不是-Path
参数的受支持类型(如果您阅读帮助主题,则需要[String[]]
)。
如果您想要第一行,您应该执行以下操作:
$Path = 'C:\Users\Administrator\Documents\lab8\usersF.csv'
@(Get-Content -Path $Path)[1] #Arrays are zero-indexed
可替换地,
$Csv = Import-Csv -Path $Path
$Csv.GivenName[0]
要解决您的修改问题,您不能正确调用Export-Csv
。它期望PSCustomObject
,但你传递一个字符串。我建议改用Out-File
。
$CSV1 = Import-Csv -Path C:\Users\Administrator\Documents\lab8\usersF.csv
$test = $CSV1.GivenName[4]
$test |
OutFile -FilePath C:\Users\Administrator\Documents\lab8\test.csv