我想写一个批处理脚本,它将生成包含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