2012-11-12 106 views
0

我想输出这个脚本的结果到一个文本文件。到目前为止,我所有的尝试都只是给我一个空白的文本文件。甚至不确定Out-File是否是正确的cmdlet。有人可以帮助我的位置和语法正确地输出我的结果到.txt文件吗?Powershell ForEach Out文件

$store = Get-Content C:\Users\store_list.txt <#list of numbers#> 

ForEach ($item in $store) 
{ 
    $item = [int]$item 
    Write-Host "Item: " $item <# Used to show list item being operated on, 
            can be commented out#> 

    if ($item -gt 0 -and $item -le 255) 
     { 
      Write-Host "10.128.$item.50" 
     } 
    if ($item -ge 256 -and $item -le 511) 
     { 
      $item1 = $item-256 
      Write-Host "10.129.$item1.50" 
     } 
    if ($item -ge 512 -and $item -le 767) 
     { 
      $item2 = $item-512 
      Write-Host "10.130.$item2.50" 
     } 
} 

回答

1

来完成你的任务会是这样的最简单方法:

$store = Get-Content C:\Users\store_list.txt <#list of numbers#> 

ForEach ($item in $store) 
{ 
    $item = [int]$item 
    Write-Verbose "Item: $item" <#Use Write-Verbose so you can enable/disable it by 
           passing the -Verbose parameter #> 

    if ($item -gt 0 -and $item -le 255) 
    { 
     "10.128.$item.50" | Out-File -filePath $filePath -append -encoding utf8 
    } 
    if ($item -ge 256 -and $item -le 511) 
    { 
     $item1 = $item-256 
     "10.129.$item1.50" | Out-File -filePath $filePath -append -encoding utf8 
    } 
    if ($item -ge 512 -and $item -le 767) 
    { 
     $item2 = $item-512 
     "10.130.$item2.50" | Out-File -filePath $filePath -append -encoding utf8 
    } 
} 
+0

你好巴斯Bossink。此方法会产生错误:不允许使用空的管道元素。 – user1298258

+0

@ user1298258对不起,忘了测试它,foreach循环不会为循环中的每个项目输出一个值。我现在编辑了我的答案,它应该按预期工作。 –

+0

工作正常!非常感谢你! – user1298258