我有一些要合并的CSV文件,所有这些文件都有相同的标题。我有一个函数可以抓取第一行(任何一个文件),另一个函数会跳过每个文件的第一行。
function getFirstLine() {
Param(
[string]$path
)
$reader = New-Object -TypeName System.IO.StreamReader -ArgumentList $path
$line = $reader.ReadLine()
$reader.Close()
return $line
}
function returnFile(){
Param(
[string]$path,
[Int32]$skip
)
$reader = New-Object -TypeName System.IO.StreamReader -ArgumentList $path
for ($i=0; $i -lt $skip; $i++) {
$reader.ReadLine()
}
$data = ''
while ($reader.EndOfStream -eq $false) {
$data += $reader.ReadLine() + "`n"
}
$reader.Close()
return $data
}
我调用:$Data = returnFile -path $CSVs[$i] -skip 1
。 $CSVs
是System.Collections.Generic.List[String]
类型,包含文件的路径。
returnFile
功能令我感到困惑。尽管跳过第一行,它返回整个字符串。我在调试之前已经确认,在我点击return
之前,字符串$data
不包含第一行。
这是我的PS版本:
Major Minor Build Revision ----- ----- ----- -------- 5 1 16299 248