Powershell 输出为表格格式

问题描述 投票:0回答:1

需要一些帮助才能以表格格式获取以下代码的输出,下面是使用的代码。

$URLList = Get-Content  C:\temp\link.txt



$result = foreach ($uri in $URLList)  { 
    try{
        $res =  Invoke-WebRequest -Uri $uri -UseDefaultCredentials -UseBasicParsing -Method Head -TimeoutSec 5 -ErrorAction Stop
        $status = [int]$res.StatusCode  
      
       
        
        
    } 
    catch {
        $status = [int]$_.Exception.Response.StatusCode.value__
    }
    # output a formatted string to capture in variable $result
    " URL- $uri - Status- $status " 
}  

#print
$result

目前收到的结果如下

URL- http://example.com - Status- 200 

需要如下表格格式,

| URL                  | Status |

| http://example.com   |200     |
powershell
1个回答
0
投票

不输出字符串,而是输出 PSCustomObject。
然后,您可以将其通过管道传输到 Format-Table(这通常是不必要的,因为 Powershell 经常自动将其用于 PSCustomObjects,但强制它也无害)

$result = foreach ($uri in $URLList) { 
    Write-Verbose 1
    try {
        $res = Invoke-WebRequest -Uri $uri -UseDefaultCredentials -UseBasicParsing -Method Head -TimeoutSec 5 -ErrorAction Stop
        $status = [int]$res.StatusCode  
    } 
    catch {
        $status = [int]$_.Exception.Response.StatusCode.value__
    }

    [PSCustomObject]@{
        URL    = $uri
        Status = $status
    }
}  

$result | Format-Table
© www.soinside.com 2019 - 2024. All rights reserved.