问题
dir/b > files.txt
I guess it has to be done in PowerShell to preserve unicode signs.
回答1:
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt
or shorter:
ls | % Name > files.txt
However, you can easily do the same in cmd
:
cmd /u /c "dir /b > files.txt"
The /u
switch tells cmd
to write things redirected into files as Unicode.
回答2:
Get-ChildItem
actually already has a flag for the equivalent of dir /b
:
Get-ChildItem -name
(or dir -name
)
回答3:
In PSH dir
(which aliases Get-ChildItem
) gives you objects (as noted in another answer), so you need to select what properties you want. Either with Select-Object
(alias select
) to create custom objects with a subset of the original object's properties (or additional properties can be added).
However in this can doing it at the format stage is probably simplest
dir | ft Name -HideTableHeaders | Out-File files.txt
(ft
is format-table
.)
If you want a different character encoding in files.txt
(out-file
will use UTF-16 by default) use the -encoding
flag, you can also append:
dir | ft Name -HideTableHeaders | Out-File -append -encoding UTF8 files.txt
回答4:
Since powershell deals with objects, you need to specify how you want to process each object in the pipe.
This command will get print only the name of each object:
dir | ForEach-Object { $_.name }
回答5:
Simply put:
dir -Name > files.txt
回答6:
Just found this great post, but needed it for sub directories as well:
DIR /B /S >somefile.txt
use:
Get-ChildItem -Recurse | Select-Object -ExpandProperty Fullname | Out-File Somefile.txt
or the short version:
ls | % fullname > somefile.txt
来源:https://stackoverflow.com/questions/5536708/equivalent-of-dir-b-files-txt-in-powershell