Эквивалент файла (dir/b> files.txt) в PowerShell

dir/b > files.txt

Я думаю, это нужно сделать в 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 имеет дело с объектами, вам нужно указать, как вы хотите обрабатывать каждый объект в канале.

Эта команда будет печатать только имя каждого объекта:

dir | ForEach-Object { $_.name }

Ответ 5

Проще говоря:

dir -Name > files.txt