2014-03-27 37 views
0

我想剝離文件夾中所有dat文件的第一行以批量插入到SQL Server中。我知道如何去掉.dat文件的第一行並將其批量插入到sql server中,但是如何將所有dat文件傳遞到剝離命令中。下面是PowerShell腳本我用一個單一的文件剝離文件夾中所有dat文件的第一行

$file = "\\fileserver\files\user.dat" 

get-content $file | 
select -Skip 1 | 
set-content "$file-temp" 
move "$file-temp" $file -Force 

,我可以調用在SQL Server查詢窗口PowerShell腳本?下面是我的批量插入

bulk insert dbo.user 
from '\\fileserver1\files\user.dat' 
with 
(
firstrow = 1, 
fieldterminator = '|', 
rowterminator = '\n' 
) 

感謝

回答

0

這會修改你的DAT文件

ls "\\fileserver\files\*.dat" | % { 
    $file = $_.FullName 
    get-content $file | select -Skip 1 | set-content "$file-temp" 
    move "$file-temp" $file -Force 
} 

您可以瞭解從SSMS執行Powershell的:http://blogs.technet.com/b/heyscriptingguy/archive/2011/11/28/four-easy-ways-to-import-csv-files-to-sql-server-with-powershell.aspx

+0

我確實收到錯誤。這是我的完整路徑\\ fileserver \ Medicare Group \ Red Book \ 2014 \ Feb 27 \ Delimited Monthly \ dppfv1p Get-ChildItem:找不到接受參數'Book \ 2014 \ Feb'的位置參數。 在線:1 char:3 + ls <<<< \\ fileserver \ Medicare Group \ Red Book \ 2014 \ Feb 27 \ Delimited Monthly \ dppfv1p \ *。dat | %{ + CategoryInfo:InvalidArgument:(:) [Get-ChildItem],ParameterBindingException + FullyQualifiedErrorId:PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand – user176047

+0

我將其更改爲get-childitem「\\ fileserver1 \ Medicare Group \ Red Book \ 2014 \ Feb 27 \ Delimited Monthly \ dppfv1p「| %{ $ file = $ _。FullName get-content $ file |選擇-Skip 1 |設置內容「$ file-temp」 移動「$ file-temp」$ file -Force }並且它有效。 – user176047

+0

修改了答案。 – Raf

相關問題