Powershell在导入时跳过前2行的txt文件

时间:2015-12-18 09:03:10

标签: powershell

我有一个powershell脚本,用于读取远程服务器上的txt文件并将其导入SQL。

我希望能够跳过txt文件的前两行。我目前正在使用以下代码导入文件。 txt文件是分隔的

$datatable = new-object System.Data.DataTable
$reader = New-Object System.IO.StreamReader($empFile)     
$columns = (Get-Content $empfile -First 1).Split($empFileDelimiter) 

    if ($FirstRowColumnNames -eq $true) 

        { 
            $null = $reader.readLine() 

        } 

    foreach ($column in $columns) 

        {  
            $null = $datatable.Columns.Add() 
        } 

    # Read in the data, line by line, not column by column 
    while (($line = $reader.ReadLine()) -ne $null)  

        { 

            $null = $datatable.Rows.Add($line.Split($empFiledelimiter)) 

column参数获取txt文件的第一行并创建PS数据表的列。

我遇到的问题是不需要txt文件的前两行,我需要跳过它们并使用txt文件的第三行作为列。我有以下代码行,但我不确定如何将它集成到我的代码中。

get-content $empFile | select-object -skip 2 

3 个答案:

答案 0 :(得分:5)

[DYNAMICFIELD_EMAIL_HASHED]创建一个没有前两行的数组,然后使用数组的第一项作为列,如下所示:

$empfile

答案 1 :(得分:3)

只是快速的一个班轮

(Get-Content $empFile| Select-Object -Skip 2) | Set-Content $empFile

答案 2 :(得分:1)

对ReadLine()进行两次未使用的调用。像这样:

$datatable = new-object System.Data.DataTable
$reader = New-Object System.IO.StreamReader($empFile)
$reader.ReadLine()
$reader.ReadLine()
$columns = ($reader.ReadLine()).Split($empFileDelimiter) 
...