在PowerShell中等效于(dir/b> files.txt)
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt
或更短:
ls | % Name > files.txt
然而,你可以很容易地做同样的cmd
:
cmd /u /c "dir /b > files.txt"
的/u
开关告诉cmd
写的东西重定向到文件为Unicode。
PSH:ńórąąśóń - >ńóręąśóńCMD:ńóręąśóń - >ä˘r©Ą˘ä改变字体不起作用。 – 2011-04-04 12:13:44
它在屏幕上看起来很好,但不在文件中。 – 2011-04-04 12:26:22
Przemysław:如果您希望将文件重定向到文件以使用Unicode而不是遵循传统代码页,请使用'cmd/u'来启动'cmd'。 – Joey 2011-04-04 14:29:02
由于powershell处理对象,因此您需要指定如何处理管道中的每个对象。
此命令将获取打印每个对象的唯一名称:
dir | ForEach-Object { $_.name }
您忘记了添加| Out-File files.txt,但我从第二个答案中得到了。谢谢。 – 2011-04-04 12:02:39
糟糕,你是对的。 – tenpn 2011-04-05 08:16:49
在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
嗨理查德。你能告诉我为什么这个代码在每个项目之间返回一个空行吗? – 2011-04-04 10:51:27
@NickRulez:“在我的机器上工作”。 '格式 - 表格'将填充空格到指定的宽度(默认是当前会话的宽度):可以这样吗?使用'%{$ _。Name}'('%'='foreach-object')而不是格式表可以避免这种情况。 – Richard 2011-04-04 11:36:55
感谢您的回复。 :)如果我使用foreach-object,一切工作正常。 ft的输出是正确的。当我管道出文件时出现问题。在这种情况下,我有一个空行,然后是文件名,另一个空行,文件名等。我不知道如何检查当前会话的宽度。 – 2011-04-04 12:01:06
Get-ChildItem
实际上已经具备了的dir /b
相当于一个标志:
Get-ChildItem -name
(或dir -name
)
不错。还不知道。我通常会将“制作对象,制作一些有用的东西”路线。 – Joey 2014-01-12 11:37:12
简单地说:
dir -Name > files.txt
你应该真的为此添加一些参考或文档或更好地解释它 – 2017-11-01 02:26:05
对不起,但其他文章似乎还没有提供文件。无论如何,我无法得到适合我的答案的文档,但我使用它作为'相当于dir/b> files.txt',它可以很好地工作。 – Jet 2017-11-02 17:14:17
因此,如果每个人都跳下一座桥,那么你也可以这样做吗?你应该只关心你自己工作的质量,而不要把它与其他人相比较。我们提供的技术解决方案始终具有行业标准的性质,至少需要某种解释,阐述和参考。这很简单,你不想这样做,这很好,但不要指望你的答案获得高质量的关注或者一般都能得到很好的接受。这是为了帮助你,而不是指责,采取建设性的建议,不要打架或证明它的合理性。 – 2017-11-02 19:33:17
[我该怎么办'DIR/S/B'在PowerShell中?](http://stackoverflow.com/q/1479663/995714) – 2017-04-30 03:08:54