Powershell Out-file无法正常工作

时间:2015-11-01 14:52:28

标签: powershell

我有一个powershell脚本,可以在某些远程服务器上收集一些文件信息。 写入控制台时,我看到结果很好,但它们似乎没有被写入指定的文件:

out-file -filepath $filepath -inputobject $date -force -encoding ASCII -width 50
ForEach($server in $serverLists)
{
$result += $server
$result += $break

ForEach($filePath in $filePaths)
{
    $result += $filePath
    $result += $break

    $command = "forfiles /P " + $filePath + " /S /D -1 > C:\temp\result.txt"
    $cmd = "cmd /c $command"

    Invoke-WmiMethod -class Win32_process -name Create -ArgumentList $cmd -ComputerName $server
    sleep 2
    $result += Get-Content \\$server\C$\temp\result.txt
    $result += $break
    $result += $break
    write-host $result
    #out-file -filepath $filepath -Append -inputobject $result -encoding ASCII -width 200
    Remove-Item \\$server\C$\temp\result.txt
}
$result += $break
}

out-file -filepath $filepath -Append -inputobject $result -encoding ASCII -width 200

1 个答案:

答案 0 :(得分:2)

您在两个地方使用相同的变量$filepath:作为foreach循环的循环变量和循环外部。循环结束后,foreach循环不会恢复循环变量的值。因此,在循环结束后,循环变量将具有循环或值的最后一个值,其中循环被break命令中断。如果您不希望foreach循环覆盖变量值,则应为循环变量选择不同的名称。