【问题标题】:Powershell skip first 2 lines of txt file when importing itPowershell 导入时跳过 txt 文件的前 2 行
【发布时间】:2015-12-18 09:03:09
【问题描述】:

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

我希望能够跳过 txt 文件的前 2 行。我目前正在使用下面的代码来导入文件。 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 

【问题讨论】:

    标签: powershell


    【解决方案1】:

    $empfile 创建一个没有前两行的数组,然后将数组的第一项用于列,如下所示:

    $Content = Get-Content $empFile | Select-Object -Skip 2 
    $columns = $Content[0].Split($empFileDelimiter)
    

    【讨论】:

      【解决方案2】:

      只是一个快速的班轮

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-17
          • 1970-01-01
          • 2016-03-04
          • 1970-01-01
          相关资源
          最近更新 更多