我正在使用 PowerShell 调用存储过程并将输出存储在 CSV 文件中。使用相同的脚本,我打算读取 csv 并使用特定列中的值来创建将文件移动到的目录。但是,我需要帮助来创建初始基本代码。
来自 csv 文件的示例记录:
标题:人员类别子类别日期文件
值: Bob 人类 男性 20191023 C:\Temp\Bob.jpg
工作流程:
对于 SQL 输出中的每一行;
- 如果不存在,则在输出文件夹中创建 Person 子文件夹
- 如果不存在,则在 Person 子文件夹中创建一个类别文件夹
- 如果不存在,则在类别子文件夹中创建子类别文件夹
- 如果不存在,则在子类别子文件夹中创建一个日期文件夹。(文档日期为 YYYYMMDD 格式)。
- 将文档文件从源位置复制到文档日期文件夹。
当前代码:
#Variable Parameters
## Do not add final backslash to directory path
$FilePath="C:\Temp\Output"
#Date Parameters
Echo "Getting date & time"
$GetDate=Get-Date
$DateStr = $GetDate.ToString("yyyyMMdd")
$TimeStr = $GetDate.ToString("HHmm")
#SQL Connection & SP Execution
Echo "Establishing SQL Connection"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=MyServer;Database=MyDatabase;Integrated Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
#Run Stored Procedure
Echo "Running Stored Procedure"
#Return Row Count Print from SP
Echo "Row Count:" #This result with be printed via the SP
$SqlCmd.CommandText = "[SCHEMA].[STOREDPROCEDURE]"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
#Close SQL Connection
Echo "Closing SQL Connection"
$SqlConnection.Close()
#Output File
Echo "Outputting File"
$DataSet.Tables[0] | Export-CSV -notype "$($FilePath)\$($DateStr)_$($TimeStr)_Export.csv"
#Finished Exporting .csv File
Echo "File Exported to Output Directory"