如何通过命令行从多个文件夹获取完整文件名到csv
How to get the full file names from multiple folders through command line into a csv
感谢这里的几个人,我能够通过命令行连接到我的 WD NAS。
现在我想获取我存储在那里的电影的标题。我知道 dir /b > file.csv
命令,但这似乎不适用于我的结构。我有一个名为 Data 的文件夹(我将 X: 映射到这个位置“\MYNAS\Data”),在 Data 文件夹中我还有其他文件夹,例如 Action、Drama、Documentary 等。所以当我使用 dir /b > file.csv
命令,它给了我数据中的文件夹名称,而不是文件夹中的电影。
有没有一种简单的方法可以从每个文件夹中提取文件并将它们全部输出到一个 CSV,而不是为每个文件夹单独制作一个 csv?
我更愿意使用命令提示符来解决这个问题,因为我最熟悉它,但我也愿意使用 powershell。
如果你想在 cmd.exe
中使用 dir
命令,你需要 /S
开关递归地遍历文件夹,并且可能 /A:-D
从结果中排除目录和联结:
dir X:\Data /A:-D /S /B > files.csv
您也可以使用 PowerShell,等效的 cmdlet 为 Get-ChildItem
:
Get-ChildItem X:\Data -File -Recurse | select FullName | Out-File "files.csv"
正如@Matt 指出的那样,此语句仅适用于 PowerShell 版本 3.0 或更高版本。在早期版本中,-File
参数不起作用,因此您必须手动过滤掉目录:
Get-ChildItem X:\Data -Recurse | Where-Object {-not $_.PSIsContainer} | Select FullName | Out-File "files.csv"
您可以扩展 Where-Object
过滤器以使用 Extension
属性:
排除具有特定扩展名的文件
$ExcludeExtensions = ".exe",".pdf"
Get-ChildItem X:\Data -Recurse | Where-Object {(-not $_.PSIsContainer) -and ($ExcludeExtensions -notcontains $_.Extension)} | Select FullName | Out-File "files.csv"
感谢这里的几个人,我能够通过命令行连接到我的 WD NAS。
现在我想获取我存储在那里的电影的标题。我知道 dir /b > file.csv
命令,但这似乎不适用于我的结构。我有一个名为 Data 的文件夹(我将 X: 映射到这个位置“\MYNAS\Data”),在 Data 文件夹中我还有其他文件夹,例如 Action、Drama、Documentary 等。所以当我使用 dir /b > file.csv
命令,它给了我数据中的文件夹名称,而不是文件夹中的电影。
有没有一种简单的方法可以从每个文件夹中提取文件并将它们全部输出到一个 CSV,而不是为每个文件夹单独制作一个 csv?
我更愿意使用命令提示符来解决这个问题,因为我最熟悉它,但我也愿意使用 powershell。
如果你想在 cmd.exe
中使用 dir
命令,你需要 /S
开关递归地遍历文件夹,并且可能 /A:-D
从结果中排除目录和联结:
dir X:\Data /A:-D /S /B > files.csv
您也可以使用 PowerShell,等效的 cmdlet 为 Get-ChildItem
:
Get-ChildItem X:\Data -File -Recurse | select FullName | Out-File "files.csv"
正如@Matt 指出的那样,此语句仅适用于 PowerShell 版本 3.0 或更高版本。在早期版本中,-File
参数不起作用,因此您必须手动过滤掉目录:
Get-ChildItem X:\Data -Recurse | Where-Object {-not $_.PSIsContainer} | Select FullName | Out-File "files.csv"
您可以扩展 Where-Object
过滤器以使用 Extension
属性:
$ExcludeExtensions = ".exe",".pdf"
Get-ChildItem X:\Data -Recurse | Where-Object {(-not $_.PSIsContainer) -and ($ExcludeExtensions -notcontains $_.Extension)} | Select FullName | Out-File "files.csv"