【问题标题】:Powershell Compare-Object pipe to file and functionPowershell 比较对象管道到文件和函数
【发布时间】:2015-11-17 14:11:20
【问题描述】:

我是 Powershell 新手,我想将 Compare-Object 的结果通过管道传输到 Write-Progress 函数(进度条)以及 .csv 文件。我有以下内容,但它只写入文件。我可以只使用一个管道吗?我有大目录要比较,真的不想在使用比较对象后再次循环结果:

$Counter = 0
Write-Host "Comparing Folders"
compare-object $dirList1 $dirList2 | %{
Write-Progress -Activity "Comparing Folders" -Status "$_" -PercentComplete ($counter/$TotalFolderCount * 100)
sleep -milliseconds 20
$Counter++
} | ft inputobject, @{n="Only In Directory";e={ if ($_.SideIndicator -eq '=>') { "$dir2" }  else { "$dir1" } }} | Out-File $outFile

【问题讨论】:

    标签: powershell compareobject


    【解决方案1】:

    您可以将Out-File 替换为Tee-Object

    Tee-Object 会将输入对象写入文件沿管道传递它们,例如:

    "Test01","Test02" | Tee-Object -FilePath C:\temp\tee.txt | % {
        Write-Host $_ -ForegroundColor Green
    }
    

    您会看到字符串以亮绿色写入屏幕,如果您检查文件,您会看到它也包含字符串:

    PS C:\> Get-Content C:\temp\tee.txt
    Test01
    Test02
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2022-01-07
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多