仅在命令行中列出具有路径和文件大小的文件

时间:2017-05-11 00:35:30

标签: windows powershell command-line filenames command-prompt

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

6 个答案:

答案 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"