2

Я пытаюсь получить список всех каталогов и файлов на внешнем жестком диске, с одним полным указанием пути к каталогу / файлу на строку. Я использую PowerShell в Windows 10 для достижения этой цели. Это команда PowerShell, которую я использую:

Get-ChildItem 'E:\' -Force -Recurse | Select-Object FullName | Out-File -Encoding utf8 "C:\Users\Me\Desktop\listing.txt" -width 300

Тем не менее, некоторые пути усекаются в моем выводе. На самом деле, более 10000 строк усекаются. Вот пример одной строки в моем выходном файле PowerShell для list.txt:

E:\Sort\Tech Stuff\2006-2007 CompanyLtd\fsie01-Engineering-Users-User1\Reference\LCID & Language Group by Language\Configuring and Using International Features of Windows Windows 2000 - List of Locale I...

Когда я просматриваю этот каталог в проводнике (E:\Sort\Tech Stuff\2006-2007 CompanyLtd\fsie01-Engineering-Users-User1\Reference\LCID & Language Group by Language), файл там называется «Настройка и использование». Международные особенности Windows Windows 2000 - список идентификаторов локалей и языковых групп .url '. Путь к этому файлу составляет 228 символов, если я не учел ошибки, что должно быть в допустимых пределах.

Что я делаю неправильно, что усекает пути в выводе PowerShell?

2 ответа2

3

Передача по конвейеру в командлет Format-Table , например, следующим образом:

Get-ChildItem 'E:\' -Force -Recurse | Select-Object FullName | Format-Table -AutoSize

или же

(Get-ChildItem 'E:\' -Force -Recurse).FullName | Format-Table -AutoSize

Обратите внимание, что параметр -Width командлета Out-File указывает количество символов в каждой строке вывода. Любые дополнительные символы усекаются, а не переносятся. Однако в этом случае должна быть достаточна -Width 300 .

0

для меня это лучше всего работает с трубопроводом на export-csv

https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Export-Csv?view=powershell-3.0

просто:

GCI 'E:\' -Recurse | Select FullName | Export-CSV Files.csv

без двойных кавычек:

Add-Content -Path Files.txt -Value (GCI 'E:\' -Recurse).FullName

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