使用batch file索引E:\ data下的所有文件和文件夹

我想写一个批处理脚本,它将生成包含E:\ data下的所有文件和文件夹的CSV或JSON文件。 我需要存储的信息是(文件或文件夹名称,大小,types – 文件或文件夹,完整的位置path)。

任何帮助将不胜感激。 谢谢。

PowerShell可以轻松做到这一点。 必须添加一个小表达式来给出友好的条款,如果它是一个文件夹或文件。 否则,我们可以摆脱整个@{l=...}位,只是使用PSIsContainer,它会是真/假来表明它是否是一个文件夹。

 Get-ChildItem E:\Data -recurse | Select Name,Length,@{l='Type';e={if($_.PSIsContainer){'Folder'}else{'File'}}},FullName | Export-CSV C:\Path\To\Output.csv -NoType 

或者,如果你想找出文件夹的大小(包括文件夹中的文件),你可以运行这个:

 | Select Name,@{l='Size';e={if($_.psiscontainer){$_.getfilesysteminfos()|measure -Sum -Property length|select -expand sum}else{$_.length}}},@{l='Type';e={if($_.PSIsContainer){'Folder'}else{'File'}}},FullName | Export-CSV C:\Path\To\Output.csv -NoType