Я думаю, это нужно сделать в PowerShell, чтобы сохранить знаки unicode.
Ответ 1
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt
или короче:
ls | % Name > files.txt
Однако вы можете легко сделать то же самое в cmd:
cmd /u /c "dir /b > files.txt"
Переключатель /u сообщает cmd записывать вещи, перенаправленные в файлы как Unicode.
Ответ 2
Get-ChildItem на самом деле уже есть флаг для эквивалента dir /b:
Get-ChildItem -name (или dir -name)
Ответ 3
В PSH dir (с псевдонимами Get-ChildItem) вы получаете объекты (как указано в другом ответе), поэтому вам нужно выбрать, какие свойства вы хотите. Либо с помощью Select-Object (псевдоним select) создать пользовательские объекты с подмножеством исходных свойств объекта (или добавить дополнительные свойства).
Однако, это может сделать это на этапе форматирования, вероятно, простейшим
dir | ft Name -HideTableHeaders | Out-File files.txt
(ft - format-table.)
Если вы хотите, чтобы различная кодировка символов в files.txt (out-file будет использовать UTF-16 по умолчанию) используйте флаг -encoding, вы также можете добавить:
dir | ft Name -HideTableHeaders | Out-File -append -encoding UTF8 files.txt
Ответ 4
Так как powershell имеет дело с объектами, вам нужно указать, как вы хотите обрабатывать каждый объект в канале.
Эта команда будет печатать только имя каждого объекта: