Импорт CSV-файла с помощью powershell с помощью переменной path

Я пытаюсь импортировать CSV-файл с помощью powershell в базу данных с путем, определенным в переменной. Но это, кажется, не работает.

$path = "C:UsersAdminDesktopTestFolderfile.txt"   
Import-CSV -Header ("header1","header2","header3") -Path $path

выше не работает, и я не знаю, почему. Если я напечатаю $path Я получаю правильный путь, и если я бегу Import-CSV С путем непосредственно в нем, он также работает нормально.

Write-Host $path
C:UsersAdminDesktopTestFolderfile.txt

Import-CSV -Header ("header1","header2","header3") -Path C:UsersAdminDesktopTestFolderfile.txt
header1   test123
header2   test345
header3   test567

header1   test789
header2   test901
header3   test123
etc...

использование Windows Server 2012 Standard и PowerShell 2.

любая помощь оценил,


Спасибо


EDIT:


Мой полный код выглядит так:этой, но это не работает. Я пытаюсь просмотреть папку с PowerShell, а затем импортировать ее в SQL Server 2012. Папка часы работает отлично, но я не могу заставить импорт работать. Я решил, что проблема в $DataImport и таким образом, я вернулся к основам, чтобы выяснить, что проблема была. Я попробовал самую простую настройку Import-CSV как уже упоминалось выше, но это (в обычной версии выше) не работает.. поэтому я решил, что использую Import-CSV неправильно.

10
задан John
07.01.2023 14:33 Количество просмотров материала 3008
Распечатать страницу

2 ответа

кажется, что пастоз был удален, поэтому я не могу комментировать полный сценарий. Тем не менее, вы можете попробовать следующее:

  • для любых текстовых строк, используемых в качестве параметров в скрипте, используйте одинарные кавычки ' '.
  • для всех строк, содержащих переменные, которые используются в качестве параметров в скрипте, используйте двойные кавычки " ".

например, первые две командные строки, которые вы даете в своем вопросе, должны be:

$path = 'C:\Users\Admin\Desktop\TestFolder\file.txt'
Import-CSV -Header ('header1','header2','header3') -Path "$path"
0
отвечен Iszi 2023-01-08 22:21

пожалуйста, попробуйте так:

foreach($file in dir $CodesetBulkLoadLocation -Recurse -Include @("*.csv"));
{

#$files = @{
#'ICD10' = @{ 'EDIT_FUNCTION'='UCM-REPT-TEEN-PREG-DIAG'; 'TABLE_FUNCTION'='UCM-REPT'; 'CODE_FUNCTION' = 'I0' }
#}
#foreach($file_desc in $files.GetEnumerator())
#{
$filename = $file_desc.Key
$edit_func = $file_desc.Value.EDIT_FUNCTION
$table_func = $file_desc.Value.TABLE_FUNCTION
$code_func = $file_desc.Value.CODE_FUNCTION

$filePath = "C:\jobs\AA\DEV6\UCM${filename}.csv"
$importFile = Import-CSV $filePath
foreach($item in $importFile)
    {
   $proc1 = $item.DIAG_NBR
   $proc2 = $item.DIAG_NBR
  # $ymdeff = $item.YMDEFF
   #$ymdend = $item.YMDEND
   #$ymdtrans = $item.YMDTRANS

   Write-Verbose "$proc1, $proc2"

   $currentDate = Get-Date -Format yyyyMMdd


# *******************************************************************************
# * Insert codes and fees into the su_edit_detail.
# *******************************************************************************

'{0,-60}{1,20}' -f "Insert TEEN PREGNANCY  ICD9 AND ICD10 CODES  into the su_edit_detail ",(Get-Date -Format yyyyMMdd:hhmmss);

$myQuery = @"
SET PAGES 600;
SET LINES 4000;
SET ECHO ON;
SET serveroutput on;

WHENEVER sqlerror exit sql.sqlcode;

insert into SU_EDIT_DETAIL(EDIT_FUNCTION, TABLE_FUNCTION, CODE_FUNCTION, CODE_TYPE,CODE_BEGIN, CODE_END, EXCLUDE, INCLUDE_X, OP_NBR, TRANSCODE, VOID, YMDEFF, YMDEND, YMDTRANS)
 select '$edit_func','$table_func','$code_func','DIAG','$proc1','$proc2',' ',' ','MIS', 'C',' ',20141001, 99991231, 20131120
from dual where not exists(select * from SU_EDIT_DETAIL where (EDIT_FUNCTION = '$edit_func' and TABLE_FUNCTION = '$table_func' and CODE_BEGIN='$proc1' and CODE_END='$proc2'));
commit;               
"@
$null = Invoke-SqlPlus -MessageOnFail 'Insert into su_edit_detail failed' -Query $myQuery;

}
}
}
-1
отвечен VIjay Patel 2023-01-09 00:38

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх