将以下脚本存储为Get-Dbf.ps1,使用Powershell调用该脚本该脚本,传入两个参数即可
##################################################################################
#
#
# Script name: Get-Dbf.ps1
#
# Author: yumenma
# Homepage: http://hi.csdn.net/yumenma
# Company: www.autonavi.com
#
##################################################################################
############################################################################
#
#参数讲解
#传入的两个参数:
#$Query:SQL查询语句,例如:"select * from table"
#$FilesAddress:DBF数据存在的文件地址,例如:"C:/myvfpdbfolder"
#
#############################################################################
param([string]$Query,[string]$FilesAddress)
# Default Connection String
$ConnString =
"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=$FilesAddress;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"
$Connection = New-Object System.Data.Odbc.OdbcConnection
$Connection.ConnectionString = $ConnString
$Connection.Open()
$Command = New-Object System.Data.Odbc.OdbcCommand
$Command.Connection = $Connection
$Command.CommandText = $Query
$Reader = $Command.ExecuteReader()
$Counter = $Reader.FieldCount
while ($Reader.Read()) {
$SQLObject = @{}
for ($i = 0; $i -lt $Counter; $i++) {
$SQLObject.Add(
$Reader.GetName($i),
$Reader.GetValue($i));
}
$SQLObject
}
$Connection.Close()
$Reader.Close()
########################################################################
例子:
ps>./Get-Dbf.ps1 "select * from table" "c:/myvfpdbfloder"
便会在Powershell界面中显示table的信息