powershell将结果输出到文件

问题描述:

我正在尝试使用Powershell V2.0将SQL查询的内容写入文件。我可以成功地使用Write-Host CMDlet写入控制台屏幕,但是当我更改为Write-Output时,test.txt文件中只返回一个结果(而不是约700)。为什么会这样呢?powershell将结果输出到文件

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

你的每个记录使用(而不是>>)>重定向到输出文件。这会导致文件被重写为每个记录,并且只剩下输出文件中的最后一条记录。

这应该更好地工作:

&{ 
    foreach ($row in $DataSet.Tables[0].Rows){ 
    $row[0].ToString().Trim() 
    } }| set-content test.txt 
+0

由于它要求我现在每次都要为这个值提供一个参数.. – steven 2013-03-21 11:10:13

+0

发布备用解决方案 – mjolinor 2013-03-21 11:18:29

你只得到了一条线(和它的最后的结果),因为>运营商覆盖。追加>>

但要得到相同的结果更有效的方式(未经测试)是:

$DataSet.Tables[0].Rows|select-object -expandproperty NAMEOFFIRSTCOLUMN|out-file test.txt 
+0

由于它问我现在每次提供的值的参数。我可能需要做一些字符串操作让你的建议的方法可能无法正常工作 – steven 2013-03-21 11:12:29