Я новичок в PowerShell и пытаюсь импортировать данные из файла журнала CSV в базу данных SQL.
Я использую ForEach для форматирования таблицы и вставки значений в запрос, используя Invoke-Sqlcmd, который работает нормально, за исключением того, что необходимо изменить формат даты и времени.
Я начал с переформатирования даты и времени в соответствии с форматом smalldatetime.
Я просмотрел различные сайты, пытаясь выяснить, как отформатировать текст обратно в исходную форму. Помимо повторной обработки его в новый CSV-файл и повторения процесса, я не могу придумать, как выполнить это нарочно (и я даже не знаю, сработает ли это как задумано или нет).
$CSVImport = Import-CSV $FileBrowser.FileName -Header $FSHeader | Select $_ | ? Time -NotLike 'Time'
$CSVRowCount = $CSVImport.Count
"Inserting $CSVRowCount rows from CSV into SQL Table"
ForEach ($CSVLine in $CSVImport) {
$CSVLine
$CSVLine = $CSVLine -Replace '(\d{1,2})\/(\d{1,2})\/(\d{4})', '$3/$1/$2'
$CSVLine = $CSVLine -Replace '(\d{1,2})\/(\d{1,2})\/(\d{4})', '$3/$1/$2'
Выход из моего
Переменная $ CSVLine показывает:
Date ColumnB ColumnC ColumnD
-------------- ------- ------- ------
2/7/2017 13:28 Second Third Last
После этого формат меняется на.
@{Date=2017/2/7 13:28; ColumnB=Second; ColumnC=Third; ColumnD=Last}
Я не уверен, как использовать выходные данные для запроса или переформатировать его обратно в таблицу, которая существовала ранее.
Есть какие-нибудь рекомендации, как поступить с этим?
Заранее спасибо.