none
Powershell загрузить в SQL или вырезать из txt RRS feed

  • Вопрос

  • Подскажите команду

    1. Загрузить в  SQL из 1.txt в таблицу со строки х по строку у.

    или

    2. Создать файл 2.txt из файла 1.txt который содержит кусок 1.txt со строки х по строку у.

    28 марта 2011 г. 18:32

Ответы

  • По первому вопросу:
    
    #Параметры MS SQL Server
    $SQLServer = "YouSQLServer"
    $SQLServerDatabase = "YourDatabase"
    $SQLTable = "YouTable"
    $SQLCommandCounter = 0
    $SQLConnection = new-object System.Data.SqlClient.SqlConnection("Initial Catalog=" + $SQLServerDatabase + ";Data Source="+$SQLServer+";Integrated Security=SSPI")
    $SQLConnection.Open()
    
    #Чтение файла 1.txt
    $arrStrings = get-content ("c:\1.txt")
    for($i=(X-1); $i -le (Y-1); $i++)
    {
    
      $arrParams = $arrStrings[i] -split " "
      $Param1 = $arrParams[0]
      $Param2 = $arrParams[1]
       ..........
      $ParamN = $arrParams[n]
     $strSQLCommand = "INSERT INTO " + $SQLTable + "   (Colunm1,Column2,...,ColumnN) VALUES(" + $Param1 + "," + $Param2 + "," ... $ParamN + ")"
    $SQLCommand = New-Object System.Data.SqlClient.SqlCommand($strSQLCommand, $SQLConnection)
     try
     {
        $SQLCommand.ExecuteScalar()
      }
      catch
      {
        $MsgSubj = "SL2SQL Error" 
        $MsgText = "SL2SQL script unable to exec SQL command: " +   $strSQLCommand
      }
    }
    
    
    
    Код конечно весьма абстрактный. Если нужно работающее решение - обращайся. Вышлю скрипт, который парсит syslog-файл свитча и сохраняет его значения в базу MS SQL Server. Здесь его публиковать не стал из-за его нехилого объема
    Andy Mishechkin
    • Помечено в качестве ответа SlotDB 1 апреля 2011 г. 3:57
    31 марта 2011 г. 18:52

Все ответы

  • 2. Создать файл 2.txt из файла 1.txt который содержит кусок 1.txt со строки х по строку у.

    gc 1.txt | select -index (5..10+15) | out-file 2.txt -выбирает строки 6-11 и 16 


    28 марта 2011 г. 19:31
    Отвечающий
  • По первому вопросу:
    
    #Параметры MS SQL Server
    $SQLServer = "YouSQLServer"
    $SQLServerDatabase = "YourDatabase"
    $SQLTable = "YouTable"
    $SQLCommandCounter = 0
    $SQLConnection = new-object System.Data.SqlClient.SqlConnection("Initial Catalog=" + $SQLServerDatabase + ";Data Source="+$SQLServer+";Integrated Security=SSPI")
    $SQLConnection.Open()
    
    #Чтение файла 1.txt
    $arrStrings = get-content ("c:\1.txt")
    for($i=(X-1); $i -le (Y-1); $i++)
    {
    
      $arrParams = $arrStrings[i] -split " "
      $Param1 = $arrParams[0]
      $Param2 = $arrParams[1]
       ..........
      $ParamN = $arrParams[n]
     $strSQLCommand = "INSERT INTO " + $SQLTable + "   (Colunm1,Column2,...,ColumnN) VALUES(" + $Param1 + "," + $Param2 + "," ... $ParamN + ")"
    $SQLCommand = New-Object System.Data.SqlClient.SqlCommand($strSQLCommand, $SQLConnection)
     try
     {
        $SQLCommand.ExecuteScalar()
      }
      catch
      {
        $MsgSubj = "SL2SQL Error" 
        $MsgText = "SL2SQL script unable to exec SQL command: " +   $strSQLCommand
      }
    }
    
    
    
    Код конечно весьма абстрактный. Если нужно работающее решение - обращайся. Вышлю скрипт, который парсит syslog-файл свитча и сохраняет его значения в базу MS SQL Server. Здесь его публиковать не стал из-за его нехилого объема
    Andy Mishechkin
    • Помечено в качестве ответа SlotDB 1 апреля 2011 г. 3:57
    31 марта 2011 г. 18:52