1

Когда я выполняю Get-Content -ReadCount 0 -encoding String -literalpath "D:\file" для файла, он выгружает шестнадцатеричное содержимое в течение минуты, но когда я выполняю Get-Content -ReadCount 0 -tail 1 -encoding String -literalpath "D:\file" , Powershell не выдает никаких результатов даже через 30 минут. Вот ссылка на файл. Что мне не хватает?

1 ответ1

1

Значение Get-Content файла PowerShell nul с -Encoding Byte

После загрузки файла по ссылке, которую вы разместили, и открытия его с помощью Notepad++, кажется, что последняя строка содержит длинный набор nul символов (см. Ниже).

С учетом того, что это содержимое содержимого этого файла и синтаксис, который вы использовали с Get-Content : Get-Content -ReadCount 0 -tail 1 -encoding String -literalpath "D:\file" для получения содержимого, кажется, что он использует запрос PowerShell при использовании -encoding String .

Как предложено в этом посте в различных ответах Как удалить NULL char (0x00) из объекта в PowerShell, кажется, что шестнадцатеричное значение /x00 и использование Get-Content с параметром -Encoding String для набора символов, который должен быть идентифицирован как строка Эти шестнадцатеричные значения не нравятся и сбивают с толку PowerShell.


Заключение и решение

Переключение синтаксиса Get-Content с помощью -Encoding Byte для набора символов, который должен быть идентифицирован как байты, по-видимому, решает эту проблему.

Get-Content -ReadCount 0 -tail x -encoding Byte -literalpath "D:\file"

Синтаксис сработал:Get-Content -ReadCount 0 -tail x -encoding Byte -literalpath "D:\file" где x - это количество байтов, которое вы хотите. -кодирование строки не выполняется, так как хвоста нет. - Сабясачи Мукерджи

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .