Windows命令行(或PowerShell)。
如何以完整路径和文件大小递归列出所有文件,但没有任何其他内容并导出到.txt文件。更优选地,代码适用于我在命令行中的当前目录(因此不需要手动输入目标目录)。
这些都不提供path \ filename和filesize:
dir /s > filelist.txt
dir /s/b > filelist.txt
dir /s/o:-d > filelist.txt
所需的输出(fullpath \ file.ext filesize):
c:\aaa\file.ext 7755777
c:\aaa\bbb\1.txt 897667
c:\aaa\bbb\2.ext 67788990
c:\aaa\bbb\nnn\a.xls 99879000
答案 0 :(得分:4)
Get-ChildItem -Recurse | select FullName,Length | Format-Table -HideTableHeaders | Out-File filelist.txt
答案 1 :(得分:2)
的PowerShell:
gci -rec -file|%{"$($_.Fullname) $($_.Length)"} >filelist.txt
早期的PowerShell版本:
gci -rec|?{!$_.PSIsContainer}|%{"$($_.Fullname) $($_.Length)"} >filelist.txt
批处理文件:
(@For /F "Delims=" %%A in ('dir /B/S/A-D') Do @Echo %%~fA %%~zA) >filelist.txt
CMDLINE
(@For /F "Delims=" %A in ('dir /B/S/A-D') Do @Echo %~fA %~zA) >filelist.txt
答案 2 :(得分:1)
OP使用PowerShell选择的答案(以及他们使用Get-ChildItem -Recurse | select Length,LastWriteTime,FullName | Format-Table -Wrap -AutoSize | Out-File filelist.txt
的评论)几乎是我想要在Excel中进行处理的答案。感谢您的贡献。
不幸的是,(如他们所提到的)输出中包含用于长文件路径的换行,这不是我想要的。
以下命令将生成CSV格式的文件(无换行):
Get-ChildItem -Recurse | select Length,LastWriteTime,FullName | Export-Csv -path filelist.csv -NoTypeInformation
对于Export-Csv
的提示,https://stackoverflow.com/a/23434457/7270462表示敬意
答案 3 :(得分:0)
以下内容消除了您的包装问题:
Get-ChildItem -Recurse | select Length,LastWriteTime,FullName | Format-Table -Wrap -AutoSize | out-string -width 4096 | clip
看看这个Reference.
答案 4 :(得分:0)
转到文件夹和shift+Right Click
---> Powershell,然后放入此代码。
gci -rec -file|%{"$($_.Length)~$($_.Name)~$($_.FullName)"} >filelist.txt
Ctrl+A
然后Ctrl+C
--->复制到Excel
答案 5 :(得分:-1)
forfiles /c "cmd /c echo @path @fsize"