【问题标题】:powershell outputing results to a filepowershell 将结果输出到文件
【发布时间】:2013-03-21 19:18:11
【问题描述】:

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

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

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

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

    这应该会更好:

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

    【讨论】:

      【解决方案2】:

      因为> 运算符覆盖了,所以您只得到了一行(这是最后一个结果)。 >> 追加。

      但获得相同结果的更有效方法(未经测试)是:

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

      【讨论】:

      • 谢谢它现在每次都要求我为值提供一个参数。我可能需要做一些字符串操作,所以你建议的方法可能不起作用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2020-06-15
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      相关资源
      最近更新 更多