Powershell Get-Content действует по-разному, в зависимости от количества строк

что-то не так с моим командлетом get-content, и я не понимаю, почему он так себя ведет. Я уверен, что кто-то может мне помочь.

У меня есть два текстовых файла. $файл1 и $файл2. Оба файла имеют содержимое или нет. я читаю их так:

$content = get-content $File1
$content = $content + (Get-Content $File2)

Теперь предположим, что $file1 имеет 3 строки, а $file2 — 4 строки. echo $conent показывает мне 7 строк. Хорошо. Допустим, в $file1 есть 1 строка, а в $file2 — 3 строки. echo $conent показывает мне 4 строки. Тоже хорошо.

Но, когда я делаю

foreach ($i in $content) 

становится интересно. В примере 1 цикл foreach выполняется 7 раз. В примере 2 цикл foreach выполняется только один раз. Он сразу помещает все строки обоих файлов в $i.

Неважно, сколько строк в $file2, но если в $File1 есть ноль или одна строка, foreach считает, что это только одна строка.

Изменить: когда я добавляю пустые строки в $file1, все работает гладко.


person ddl    schedule 19.12.2015    source источник
comment
Какая у вас версия powershell? Я так понял у тебя 2.0. Изменяет ли $content = @(get-content $File1) ваши выводы?   -  person Matt    schedule 19.12.2015
comment
Возможный дубликат чтения файла в массив с разделителями строк   -  person Matt    schedule 19.12.2015
comment
$content = @(get-content $File1) исправил это. Теперь все правильно сортируется в массиве. Спасибо!   -  person ddl    schedule 19.12.2015


Ответы (1)


@Matt решил это в комментариях.

Правильный код для чтения первого файла: $content = @(get-content $File1)

person ddl    schedule 19.12.2015