PowerShell 脚本,用于使用 Loop 将 SQL 表查询到 CSV 文件



我有一个基本的员工SQL表。使用 powershell 脚本,我想将所有销售额超过 1000 次的员工导出到.csv文件,其余员工导出到不同的.csv文件中。我想通过使用循环来完成此任务。我是Powershell的新手,想学习基础。谁能帮忙?

SQL 表(不是真正的员工)

这是我到目前为止所拥有的:

$connection.Open()
[System.Data.SqlClient.SqlDataReader]$result = $cmd.ExecuteReader()
$highDestFile = "C:high-sales.csv"
$lowDestFile = "C:low-sales.csv"
while($result.Read()) {
$ename = $result.GetValue(3);
$job = $result.GetValue(4);
$sales = $result.GetValue(7);
$tableArray = New-Object System.Collections.ArrayList
$tableArray.Add($ename)      
$tableArray.Add($job)  
$tableArray.Add($sales)  
if($sales -ge 1000) {
Out-File -FilePath $highDestFile -InputObject $tableArray -Encoding ASCII -Append 
} else {
Out-File -FilePath $lowDestFile -InputObject $tableArray -Encoding ASCII -Append 
}
}
$connection.Close()

我不太熟悉您用来获得结果的方法,但我认为我有一些类似的东西可能更容易为您使用。它会将所有结果放入 PS,您可以从那里过滤内容,而不是一次获得一个结果。你显然知道如何制作自己的SqlConnection和SqlCommand,我只是把它们包括在内供未来的读者参考。

# Define SQL query
$sqlQuery = @"
SELECT *
FROM MyTable
"@
# Create a SqlConnection to connect to the SQL DB
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = "Server = $SqlServer; Database =$SqlCatalog; User Id = $User; Password = $Password"
# Create a SqlCommand object to define the query
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.CommandText = $sqlQuery
$sqlCmd.Connection = $sqlConnection
# Create a SqlAdapter that actually does the work and manages everything
$sqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$sqlAdapter.SelectCommand = $sqlCmd
# Create an empty DataSet for the query to fill with its results
$dataSet = New-Object System.Data.DataSet
# Execute the query and fill the DataSet (then disconnect)
$sqlAdapter.Fill($dataSet)
$sqlConnection.Close()
# Convert DataSet table to array for ease of use
[Array]$Results = $dataSet.Tables[0]

除此之外,您可以使用一对Where语句来过滤结果,并输出到文件。

$Results | ?{[int]$_.Sales -ge 1000} | Set-Content $highDestFile
$Results | ?{[int]$_.Sales -lt 1000} | Set-Content $lowDestFile

最新更新