如何在 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
我想将所有文件和文件夹的名称写入一个 .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