我正在尝试从许多txt文件的url中获取特定值,并将其放入csv中,但是我在使用foreach时遇到了麻烦。
我有很多文件
| Seoul-D4v3_0020.txt
| Seoul-D4v3_0120.txt
| Seoul-D4v3_0220.txt
| Seoul-D4v3_0320.txt
| Seoul-D4v3_0420.txt
.
.
.
foreach中发生循环。
您能找到问题吗?
$geeksrc = "D:\BMT\BMT\BMTResults\geekbench"
$geektxts = (Get-ChildItem $geeksrc).where({!$_.PSIscontainer})
filter timestamp {"$(Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff"): $_"}
Write-Output "finding files" | timestamp
$result = @()
foreach ($txt in $geektxts) {
Write-Output "foreach VMs" | timestamp
$spec = $txt.name.Split('_')[0]
$datetime = $txt.LastWriteTime.ToString("yyyyMMdd")+"_"+$txt.name.Split('_')[1].Replace(".txt","")
$srctxt = Get-Content -Path $geeksrc"\$txt"
Write-Output "Loading files" | timestamp
foreach($line in $srctxt) {
if($line -match "https://browser.geekbench.com/v4/cpu*"){
$uri = $line.Trim()
}
if($uri){
#Get-ContetFrom Uri
$html = Invoke-WebRequest $uri
$tbl = $html.ParsedHtml.body.GetElementsByTagName("table") | `
Where-Object {$_.className -eq "table geekbench2-show section-performance"}
$cpuTitle = $tbl[0].GetElementsByTagName("th") | Where-Object {$_.className -eq "name" -and $_.innerText -eq "Single-Core Score"}
if($cpuTitle) {
}
Write-Output "Collecting $($spec)+$($datetime) CPU Score" | timestamp
$cpu = ($tbl[0].GetElementsByTagName("th") | Where-Object {$_.className -eq "score"})[0].innerText
Write-Output "Collecting $($spec)+$($datetime) Memory Score" | timestamp
$mem = ($tbl[0].GetElementsByTagName("th") | Where-Object {$_.className -eq "score"})[4].innerText
$arr = "" | Select-Object AzureVM,BMT_Time,CPU_Score,Mem_Score
$arr.AzureVM = $spec
$arr.BMT_Time = $datetime
$arr.CPU_Score = $cpu
$arr.Mem_Score = $mem
#break
}
Write-Output "Get Result" | timestamp
$result += $arr
}
}
Write-Output "Collecting Results" | timestamp
$result | Export-Csv -Path "$($geeksrc)\Results\Geekbench_Results.csv" -Encoding UTF8 -NoTypeInformation
2019-05-14 16:35:38.249: finding files
2019-05-14 16:35:38.254: foreach VMs
2019-05-14 16:35:38.263: Loading files
2019-05-14 16:35:40.195: Collecting Seoul-D4v3+20190510_0020 CPU Score
2019-05-14 16:35:40.226: Collecting Seoul-D4v3+20190510_0020 Memory Score
2019-05-14 16:35:40.236: Get Result
2019-05-14 16:35:42.183: Collecting Seoul-D4v3+20190510_0020 CPU Score
2019-05-14 16:35:42.206: Collecting Seoul-D4v3+20190510_0020 Memory Score
在Seoul-D4v3 + 20190510_0020之后,必须输出Seoul-D4v3 + 20190510_0120。