0

Powershell V2.0 を使用して、SQL クエリの内容をファイルに書き込もうとしています。Write-Host コマンドレットを使用してコンソール画面に書き込むことはできますが、Write-Output に変更すると、test.txt ファイルに 1 つの結果しか返されません (約 700 ではなく)。これはなぜですか?

 foreach ($row in $DataSet.Tables[0].Rows){ 
    $name = $row[0].ToString().Trim()
    Write-Output $name >test.txt
    }
4

2 に答える 2

0

すべてのレコードで(>>の代わりに)>を使用して出力ファイルにリダイレクトしています。これにより、ファイルは各レコードで再書き込みされ、出力ファイルの最後のレコードだけが残ります。

これはうまくいくはずです:

&{
  foreach ($row in $DataSet.Tables[0].Rows){ 
  $row[0].ToString().Trim()
  } }| set-content test.txt
于 2013-03-21T11:08:16.790 に答える
0

>オペレーターが上書きするため、1行しか取得していません(これが最後の結果です) 。>>追加します。

しかし、同じ結果を得るためのより効率的な (テストされていない) 方法は次のとおりです。

$DataSet.Tables[0].Rows|select-object -expandproperty NAMEOFFIRSTCOLUMN|out-file test.txt
于 2013-03-21T11:07:22.403 に答える