Эквивалент файла (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