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