Powershell - Out-File出现问题 - 将计数变量插入文件名

时间:2012-02-15 20:20:33

标签: powershell

我希望文件与文件前缀和文件扩展名之间的count变量一起保存。 Out-File(文件前缀+计数变量+文件扩展名)。那类的东西。我对Powershell来说是一个荒谬的新人,所以请怜悯:P

$max = get-content h:test1\test.txt | Measure-Object 
$h = get-content h:test1\test.txt
For($i=0; $i -lt $max.count ; $i++){
select-string h:test2\*.txt -pattern $($h[$i]) | Format-List | Out-File (Join-Path h:\text  $i)
}

2 个答案:

答案 0 :(得分:1)

只需使用

Out-File h:\text\$i.extension

PowerShell的解析在边缘情况下引发了一些非常奇怪的问题,但总的来说它的设计可以像你期望的那样在大多数(如果不是全部)常见情况下工作。

在你的情况下,我可能会以不同的方式解决问题:

Get-Content h:\test1\test.txt |
  ForEach-Object { $i = 0 } {
    Select-String H:\test2\*.txt -pattern $_ |
      Format-List |
      Out-File h:\text\$i.extension
    $i ++
  }

在这种情况下,ForEach-Object的第一个块在循环开始时运行一次并初始化计数器变量。我倾向于避免使用显式循环结构(例如for (x; y; z)foreach (x in y))来支持管道解决方案。

答案 1 :(得分:1)

select-string h:test2\*.txt -pattern $($h[$i]) | Format-List | Out-File "h:\text$i.txt"

与任何优秀的脚本语言一样,有很多方法可以实现目标,但这应该适合您。