Switch command using an array of variables
have big script uses large sql queries , each query exported trying figure out logic. doing having array of variables house sql commands , variable houses csv query. have thought using foreach loop run sql commands , using switch set csv path (for exporting)
here trying...
$csvpath_tracking01 = "d:\warehouse\extract\salesforce\tracking01.csv" $csvpath_tracking30 = "d:\warehouse\extract\salesforce\tracking30.csv" $csvpath_tracking31 = "d:\warehouse\extract\salesforce\tracking31.csv" $csvpath_tracking34 = "d:\warehouse\extract\salesforce\tracking34.csv" $csvpath_tracking36 = "d:\warehouse\extract\salesforce\tracking36.csv" $csvpath_tracking52 = "d:\warehouse\extract\salesforce\tracking52.csv" $csvpath_tracking62 = "d:\warehouse\extract\salesforce\tracking62.csv" $sqlcommands = @($tracking01,$tracking30,$tracking31,$tracking34,$tracking36,$tracking52,$tracking62) foreach($cmd in $sqlcommands) { switch ($cmd) { $tracking01 { $csvpath = $csvpath_tracking01 } $tracking30 { $csvpath = $csvpath_tracking30 } $tracking31 { $csvpath = $csvpath_tracking31 } $tracking34 { $csvpath = $csvpath_tracking34 } $tracking36 { $csvpath = $csvpath_tracking36 } $tracking52 { $csvpath = $csvpath_tracking52 } $tracking62 { $csvpath = $csvpath_tracking62 } default { $csvpath = "" } } echo $csvpath }
obvious doesn't work or wouldn't asking lol. each run displays $tracking62 value. missing?
use powershell. save time.
$tasks=@( @{ csvfile='d:\warehouse\extract\salesforce\tracking01.csv' query='select ......... " .... etc' }, @{ csvfile = 'd:\warehouse\extract\salesforce\tracking01.csv' query = 'select ......... " .... etc' }, @{ csvfile = 'd:\warehouse\extract\salesforce\tracking01.csv' query = 'select ......... " .... etc' } ) foreach$task in $tasks{ get-data $task.query | export-csv $task.csvfile -notype }
\_(ツ)_/
Windows Server > Windows PowerShell
Comments
Post a Comment