Я, должно быть, что-то упускаю. У меня есть переменные: $ var1 и $ var2
$var1 | gm
TypeName: System.Collections.Hashtable
Каждый из них имеет свойство IP и Port, например $ var1 [0] .ip = '1.1.1.1'; $ var1 [0] .ports = @ (22,23,24)
Теперь я хочу создать функцию, которая выполняет некоторое сравнение между этими двумя объектами:
Function CompareData ($data1,$data2){
$data1 | gm #this is just for me to test whats wrong
write-host "first data $data1.ip" #just for me
write-host "Second data $data2.ip" #just for me
$str =''
#check each ip in data2 if it exists in data1
#if it exists, start checking for ports
#if not exists do bla bla
For ($i=0; $i -lt $data2.count; $i++){
$ip = $data2[$i].ip
for ($j=0; $j -lt $data1.count; $j++){
if ($data1[$j].ip -eq $ip){
$str += "$ip`r`n"
$str += "Base ports: $data1[$i].ports`r`n"
$str += "Current ports: $data2[$j].ports`r`n"
}
}
}
}
функция не Готово, я хочу знать, почему у меня проблема с передачей $ var1 и $ var2. Я делаю это:
CompareData ($var1, $var2)
, и похоже, что проходит только $ var1, а $ var2 также пуст, если я это сделаю (внутри функции):
$data1 | gm
System.Object[] System.Object[].ip
, что означает, что функция не получает переменные, как я хочу. что мне здесь не хватает?