この質問の一番下にあるxmlに似たデータがあります。これは数千のタスクのうちの 3 つです。ノードがあるもの<DayOfWeek>
とないものがあります。私はこのデータを取得してcsvに入れ、SQLにインポートできるように取り組んでいます。
私の目標は、毎日がテーブルの列になり、各行がタスクを表すようにすることです。特定の日に実行するようにスケジュールされている場合は、それぞれの日に 1 になり、そうでない場合は 0 になります。この質問の下部にある以下のデータの場合、表は次のようになります。
| taskID | mon | tue | wed | thur | fri | sat | sun |
|________|_____|_____|_____|______|_____|_____|_____|
| 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
| 2 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
| 3 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
私の現在の ps スクリプトは、このデータを水平ではなく垂直にします。コードからの抜粋
foreach($task in $config.Settings.Tasks.Task){
$taskID = $task.ID
foreach($DoW in $task.Schedules.Schedule.Days.DayOfWeek){
$newCSV += @(New-Object -TypeName psobject -Property @{'taskID' = $taskID; 'Day' = $DoW})
}
}
$newCSV | Export-Csv -Path c:\users\mhopkins\desktop\micSchedule\DoW.csv -notype
このデータをテーブルでもう少しうまく機能させるのを手伝ってくれませんか?
XML スニピット
<Task ID="1" Name="name1" Active="1" NextEID="11">
<Schedules>
<Schedule OnlyUntilFirstSuccess="0" FailIfNoSuccessInSched="0" RunEvenIfNotif="0">
<Days>
<DayOfWeek>Monday</DayOfWeek>
<DayOfWeek>Friday</DayOfWeek>
<DayOfWeek>Thursday</DayOfWeek>
<DayOfWeek>Saturday</DayOfWeek>
</Days>
</Schedule>
</Schedules>
</Task>
<Task ID="2" Name="name2" Active="1" NextEID="12">
<Schedules>
<Schedule OnlyUntilFirstSuccess="0" FailIfNoSuccessInSched="0" RunEvenIfNotif="0">
<Days>
<DayOfWeek>Monday</DayOfWeek>
<DayOfWeek>Friday</DayOfWeek>
</Days>
</Schedule>
</Schedules>
</Task>
<Task ID="3" Name="name3" Active="0" NextEID="24" TT="COS" AR="0">
<Schedules>
<Schedule OnlyUntilFirstSuccess="0" FailIfNoSuccessInSched="0" RunEvenIfNotif="1">
<Days>
<DayOfWeek>Monday</DayOfWeek>
<DayOfWeek>Tuesday</DayOfWeek>
<DayOfWeek>Wednesday</DayOfWeek>
<DayOfWeek>Thursday</DayOfWeek>
<DayOfWeek>Friday</DayOfWeek>
<DayOfWeek>Saturday</DayOfWeek>
<DayOfWeek>Sunday</DayOfWeek>
</Days>
</Schedule>
</Schedules>
</Task>