我试图在PowerShell脚本中使用Export-Csv
创建没有头文件的多个CSV文件。我读过几篇关于使用Select-Object -Skip 1
技巧的文章,但是我还没有成功完成我的代码。以下是我试图把它叫做:PowerShell导出Csv没有头文件
$DataSet.Tables[0] | Select-Object -Skip 1 |
Export-Csv -NoTypeInformation -Path "C:\$($csvname[$i])_$timer.csv"
这里有我全,功能代码:
function Run-Query {
Param([string[]]$queries,[string[]]$csvname)
Begin {
$SQLServer = 'myserver'
$Database = 'mydatabase'
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $Database; Integrated Security = True"
$timer = (Get-Date -f yyyy-MM-dd)
} # End Begin
Process {
# Loop through each query
for ($i = 0; $i -lt $queries.Count; $i++) {
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
# Use the current index ($i) to get the query
$SqlCmd.CommandText = $queries[$i]
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
# Use the current index ($i) to get the sheetname for the CSV
$DataSet.Tables[0] | Export-Csv -NoTypeInformation -Path "C:\$($csvname[$i])_$timer.csv"
}
} # End Process
End {
$SqlConnection.Close()
}
} # End function run-query.
#Entery Query
$queries = @()
$queries += @'
SELECT * FROM table2
'@
$queries += @'
SELECT * FROM table1
'@
#List of CSV file names.
$csvname = @()
$csvname += 'file1'
$csvname += 'file2'
Run-Query -queries $queries -csvname $csvname
'Select-Object -skip 1'“trick”用于_importing_ CSVs作为文本文件而不是对象。如果没有标题信息,您将无法导出CSV。你为什么想要? CSV格式的定义包括标题。 –
它是我将文件传输到的第三方所必需的。有没有办法用PowerShell来解决这个问题? – Joe
@Joe你的第三方需要一个逗号分隔的文件没有标题?他们如何知道任何领域的含义? – TheIncorrigible1