首页 > 解决方案 > 遍历 PowerShell 对象中的每一行并提取变量

问题描述

我正在为一些可能很简单的事情绞尽脑汁。我创建了一个自定义对象。我想从对象中提取每一行并将名称和值用作变量以放入函数中。这将循环运行,直到对象中的所有行都用完。这是逻辑:

# Example: $filename = "rigs" and $url = "https://api.grabme.com/v2/direct-access/rigs?format=xml&page=1&pagesize=1"
$url = @{}
$url.Add("rigs", 'https://api.grabme.com/v2/direct-access/rigs?format=xml&page=1&pagesize=1')
$url.Add("landtrac-units", 'https://api.grabme.com/v2/direct-access/landtrac-units?state_province=Texas&format=xml&page=1&pagesize=1')
$url.Add("trajectories", 'https://api.grabme.com/v2/direct-access/trajectories')

Loop($url) # Loop 3 times
{
    # Call API function
    ApiFunction $filename $url 
    Sleep 5
} 

标签: apipowershellobjectforeach

解决方案


你可以用一个哈希表来做,(也有一个有序的)

$url = [ordered]@{}
$url.Add("rigs", 'https://api.grabme.com/v2/direct-access/rigs?format=xml&page=1&pagesize=1')
$url.Add("landtrac-units", 'https://api.grabme.com/v2/direct-access/landtrac-units?state_province=Texas&format=xml&page=1&pagesize=1')
$url.Add("trajectories", 'https://api.grabme.com/v2/direct-access/trajectories')

$URL.GetEnumerator() | ForEach-Object {
    ApiFunction $_.Name $_.Value
    Sleep 5
}

推荐阅读