dir/b > files.txt
我想必须在PowerShell中完成以保护unicode标志。
答案 0 :(得分:28)
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt
或更短:
ls | % Name > files.txt
但是,您可以在cmd
:
cmd /u /c "dir /b > files.txt"
/u
开关告诉cmd
将重定向到文件中的内容写为Unicode。
答案 1 :(得分:15)
Get-ChildItem
实际上已经有一个相当于dir /b
的标志:
Get-ChildItem -name
(或dir -name
)
答案 2 :(得分:4)
在PSH中dir
(别名Get-ChildItem
)为您提供了对象(如another answer中所述),因此您需要选择所需的属性。使用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
答案 3 :(得分:3)
由于powershell处理对象,您需要指定处理管道中每个对象的方式。
此命令将仅打印每个对象的名称:
dir | ForEach-Object { $_.name }
答案 4 :(得分:2)
简单地说:
dir -Name > files.txt
答案 5 :(得分:1)
我正在使用:
(dir -r).FullName > somefile.txt
并带有 *.log
的过滤器:
(dir -r *.log).FullName > somefile.txt
注意:
dir is equal to `gci` but fits the naming used in cmd
-r recursive (all subfolders too)
.FullName is the path only
答案 6 :(得分:0)
刚刚找到了这篇很棒的文章,但也需要它用于子目录:
DIR /B /S >somefile.txt
使用:
Get-ChildItem -Recurse | Select-Object -ExpandProperty Fullname | Out-File Somefile.txt
或简称:
ls | % fullname > somefile.txt