2011/12/25

PowerShellを使う試み -2-

CSVで出力とか簡単なので便利なのだけど、
$files = Get-ChildItem|?{!$_.PSIsContainer}|
            Select-Object Name,
                          DirectoryName,
                          LastWriteTime
$files | ConvertTo-Csv -NoTypeInformation > test.csv
できれば、Accessデータベースに直接出力したいなと。
既に出力先が用意してあって
$dbName = 'E:\script\output.mdb'
$cnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$dbName"

$files = Get-ChildItem E:\script -Recurse |
            Where-Object{!($_.PSIsContainer)}

$adoCn = New-Object -ComObject ADODB.Connection
$adoRs = New-Object -ComObject ADODB.Recordset
$adoCn.Open($cnStr)
$adoRs.Open("select * from tblFiles",$adocn,3,3)
foreach($file in $files){
    $adoRs.AddNew()
    $adoRs.Fields.Item('FileName').Value = $file.Name
    $adoRs.Fields.Item('Length').Value = $file.Length
    $adoRs.Fields.Item('DirectoryName').Value = $file.DirectoryName
    $adoRs.Fields.Item('LastWriteTime').Value = $file.LastWriteTime
    $adoRs.Update()
}
$adoRs.Close()
$adoCn.Close()  
だけど、32bitで動作させないとならない。だって、Jetだから。ACE14/64bitであればx64でもできるはず。

0 件のコメント: