Пустой результат для конкатенации строк в foreach - PullRequest
0 голосов
/ 03 апреля 2020

Там может быть не самый лучший способ, но что не так с этим кодом. Почему я получаю пустой результат от $ str в foreach l oop, тогда как, если он пытается объединить отдельные ячейки, я получаю правильный результат.

$csv = import-csv -Path "C:\Users\abc\csv4script\TEST.csv" -Header 'IPs' 
$str = ''
$x = 1

foreach ($cell in $csv.){

    if ($x -le 4000){

    $str = $str + ", " + $cell.IPs
        if ($x -eq 4000){
        $x = 1}
        $str = ''
    }
$x = $x + 1

}
$str
#    $str = $str + $csv[1].IPs + ", " + $csv[2].IPs
$str

1 Ответ

0 голосов
/ 03 апреля 2020

У него нет значения, потому что вы не поместили символ '}'.

$x = 1}

Переместите его после $str = ''

    $x = 1
    $str = ''}

Также, как указал Томас, удалите точку после переменной $ csv в вашем выражении foreach, это должно выглядеть так: foreach($cell in $csv)

Также, если вы хотите увеличить значение, $x++ быстрее и легче для чтения чем $x = $x + 1

Наконец, если у вас есть более 4000 IP-адресов, переменная $ str опустеет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...