如何在 powershell 中列出文件和文件夹名称?

How to list file and folder names in powershell?

我想将所有文件和文件夹的名称写入一个 .gitignore 文件,如下所示:

Folder1
Folder2
File1.bar
File2.foo

等等。

写的部分可以用Out-File命令实现,但是我还是卡在按上面的格式打印这些名字。

我知道命令 Get-ChildItem 但它会打印出一堆元数据,例如日期和图标,这些对此事毫无用处。顺便说一句,我正在寻找单行 命令 ,而不是脚本。

I'm aware of the command Get-ChildItem but it prints out a bunch of metadata like dates and icons [...]

那是因为 PowerShell cmdlet 输出的是复杂对象而不是原始字符串。您看到的文件元数据都附加到描述底层文件系统条目的 FileInfo 对象。

要仅获取名称,只需引用每个名称的 Name 属性。为此,您可以使用 ForEach-Object cmdlet:

# Enumerate all the files and folders
$fileSystemItems = Get-ChildItem some\root\path -Recurse |Where-Object Name -ne .gitignore
# Grab only their names
$fileSystemNames = $fileSystemItems |ForEach-Object Name

# Write to .gitignore (beware git usually expects ascii or utf8-encoded configs)
$fileSystemNames |Out-File -LiteralPath .gitignore -Encoding ascii

这样可以吗?

(get-childitem -Path .\ | select name).name | Out-File .gitignore

只需打印文件Name 属性

$ (ls).Name >.gitignore
$ (Get-ChildItem).Name | Out-File .gitignore