2016-01-22 83 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