【发布时间】:2011-07-29 01:06:59
【问题描述】:
dir/b > files.txt
我想必须在 PowerShell 中完成以保留 unicode 符号。
【问题讨论】:
标签: powershell dir
dir/b > files.txt
我想必须在 PowerShell 中完成以保留 unicode 符号。
【问题讨论】:
标签: powershell dir
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt
或更短:
ls | % Name > files.txt
但是,您可以在cmd 中轻松地做同样的事情:
cmd /u /c "dir /b > files.txt"
/u 开关告诉cmd 将重定向到文件的内容以 Unicode 格式写入。
【讨论】:
cmd /u 启动 cmd。
Get-ChildItem 实际上已经有一个相当于dir /b 的标志:
Get-ChildItem -name(或dir -name)
【讨论】:
简单地说:
dir -Name > files.txt
【讨论】:
在 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
【讨论】:
Format-Table 将用空格填充到指定宽度(默认为当前会话的宽度):可以吗?使用% {$_.Name} (% = foreach-object) 而不是格式化表格可以避免这种情况。
由于 powershell 处理对象,因此您需要指定要如何处理管道中的每个对象。
此命令将仅打印每个对象的名称:
dir | ForEach-Object { $_.name }
【讨论】:
刚刚发现这篇很棒的帖子,但子目录也需要它:
DIR /B /S >somefile.txt
使用:
Get-ChildItem -Recurse | Select-Object -ExpandProperty Fullname | Out-File Somefile.txt
或短版:
ls | % fullname > somefile.txt
【讨论】:
我正在使用:
(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
【讨论】: