2016-01-22 2 views
1

Я пытаюсь создать выходной файл, который записывает несколько сценариев выполнения, принимая определенный параметр из списка массивов. До сих пор я получаю смешанный дублированный результат. Как я могу получить одну команду выполнения в каждой строке? Вот что у меня есть.Записывать новые строки для вывода

$myArray = @(1,2,3) 

foreach ($element in $myArray) { 

$myobj = "EXECUTE [masterdb].[dbo].[update_rows] @row_num=" +"'"+$element+"'"+","+ "@status = 'Fail'" 
$myprocedure += $myobj 
$myobj = $null 
} 
Out-file -filepath $path -inputobject $myprocedure -width 50 -force 

ответ

1

$myprocedure никогда не инициализируются как массив, так что становится строкой, вы просто добавить больше текста. Либо нужно добавить разрыв строки в конце выполняют линии:

$myobj = "EXECUTE [masterdb].[dbo].[update_rows] @row_num=" +"'"+$element+"'"+","+ "@status = 'Fail'" + [System.Environment]::NewLine 

Или создать пустой массив называется $myprocedure первым:

$myArray = @(1,2,3) 

$myprocedure = @() 
$path = "test.txt" 

foreach ($element in $myArray) { 

    $myobj = "EXECUTE [masterdb].[dbo].[update_rows] @row_num=" +"'"+$element+"'"+","+ "@status = 'Fail'" 
    $myprocedure += $myobj 
    $myobj = $null 
} 
Out-file -filepath $path -inputobject $myprocedure -width 50 -force 

Или добавьте 3 раза в файл:

$myArray = @(1,2,3) 

$path = "test.txt" 

#remove-item $path if necessary 

foreach ($element in $myArray) { 
    "EXECUTE [masterdb].[dbo].[update_rows] @row_num=" +"'"+$element+"'"+","+ "@status = 'Fail'" | Out-file -filepath $path -width 50 -force -Append 
} 
+0

Спасибо, я просто не знаю, как я это пропустил. – user2382789

Смежные вопросы