我想要一个简单的解决scheme列表的文件夹和他们的大小以txt或csv格式。
我使用这个代码文件夹列表
dir C:TemP*.* /b /a:d > C:folderList.txt
电stream输出
<<folderList.txt>> folder1 folder2 folder3
所需的输出
C ++ windows字体大小的问题
如何获得windows中的PCI区域大小?
linux命令xargs:它传递的参数的最大大小?
delphi – 计算目录大小API?
C#应用程序GUI在不同的windows图标/文本大小设置上打破
<<folderList.txt>> folder1 # 100 MB folder2 # 30 MB folder3 # 110 MB
只是它会产生每个文件夹的大小..我怎么能继续? 任何帮助
如何find代码来炸毁我的应用程序的大小?
C windows缓冲区大小
当我们看到kb或mb时,如何确定大小是基于1000还是1024
比较2个文件夹和查找具有不同字节数的文件
linux下JavaFX的默认字体大小与windows相同
对于列表中的每个文件夹,使用dir命令检索该文件夹下文件的大小
@echo off setlocal Disabledelayedexpansion set \”folder=%~1\” if not defined folder set \”folder=%cd%\” for /d %%a in (\”%folder%*\”) do ( set \”size=0\” for /f \”tokens=3,5\” %%b in (\’dir /-c /a /w /s \”%%~fa*\” 2^>nul ^| findstr /b /c:\” \”\’) do if \”%%~c\”==\”\” set \”size=%%~b\” setlocal enabledelayedexpansion echo(%%~nxa # !size! endlocal ) endlocal
它遍历指定的文件夹(作为参数传递给批处理文件,或当前目录(如果没有参数)。
对于其中的每个文件夹( for /d ),在inner for命令中执行递归dir命令,并从其输出结束(由findstr提取)的摘要行被解析( for命令中的tokens )检索此子文件夹下所有文件的大小。 然后文件夹的名称(和扩展名)以及其下的元素的大小被回显到控制台。
如果需要创建文件,请将批量输出重定向到文件
getSizes.cmd \”c:temp\” > C:folderList.txt
使用MC ND的优秀代码,我已经添加了转换为Kb,Mb,Gb等,以防万一你宁愿以这些格式。
@echo off setlocal Disabledelayedexpansion set \”folder=%~1\” if not defined folder set \”folder=%cd%\” for /d %%a in (\”%folder%*\”) do ( set \”size=0\” for /f \”tokens=3,5\” %%b in (\’dir /-c /a /w /s \”%%~fa*\” 2^>nul ^| findstr /b /c:\” \”\’) do if \”%%~c\”==\”\” set \”size=%%~b\” setlocal enabledelayedexpansion call :GetUnit !size! unit call :ConvertBytes !size! !unit! newsize echo(%%~nxa – !newsize! !unit! endlocal ) endlocal exit /b :ConvertBytes bytes unit ret setlocal if \”%~2\” EQU \”KB\” set val=/1024 if \”%~2\” EQU \”MB\” set val=/1024/1024 if \”%~2\” EQU \”GB\” set val=/1024/1024/1024 if \”%~2\” EQU \”TB\” set val=/1024/1024/1024/1024 > %temp%tmp.vbs echo wsh.echo FormatNumber(eval(%~1%val%),1) for /f \”delims=\” %%a in ( \’cscript //nologo %temp%tmp.vbs\’ ) do endlocal & set %~3=%%a del %temp%tmp.vbs exit /b :GetUnit bytes return set byt=00000000000%1X set TB=000000000001099511627776X if %1 LEQ 1024 set \”unit=Bytes\” if %1 GTR 1024 set \”unit=KB\” if %1 GTR 1048576 set \”unit=MB\” if %1 GTR 1073741824 set \”unit=GB\” if %byt:~-14% GTR %TB:~-14% set \”unit=TB\” endlocal & set %~2=%unit% exit /b
如果您正在使用windows 7或新的使用powershell和键入命令
ls -r >> log.txt
它将列出当前目录中的所有文件以及以字节为单位的文件大小以记录文件。
尝试windows的sed :
dir /-c /a /w /s|sed -nr \”/:$/q;/:/h;/^s+[0-9]/{s/.*[^0-9]([0-9]+.*)/1/;H;g;s/n/ /p}\”
我的JREN.BAT实用程序可用于获取大小的文件夹列表。 这是一个混合的Jscript /批处理脚本,可以从XP以后的任何windows机器上本地运行。
JREN不便于转换为MB(或任何其他单位) – 它只是按字节列出大小。 但是拿到这个清单确实很方便(而且比较快)
jren \”$\” \”\’ # \’+size()\” /d /j /List /p \”d:temp\” >\”C:folderList.txt\”
您可能会考虑将文件夹大小放在第一位,将空格填充到超过最大文件夹的固定宽度,然后是文件夹名称。 我发现这个格式更容易阅读,而且它仍然很容易解析:
jren \”^\” \”size(\’ \’)+\’ \’\” /d /j /List /p \”d:temp\” >\”C:folderList.txt\”
输出看起来像这样
1852 SomeFoldername 1616869 Another folder name 137764 yetAnother
由于JREN是批处理文件,因此如果将命令放入另一个批处理脚本中,则必须使用CALL JREN。
我们怎样才能使用命令提示符来获得文件夹的磁盘大小?
问候,亚历克斯
总结
以上是内存溢出为你收集整理的如何通过batch file列出所有具有大小的文件夹全部内容,希望文章能够帮你解决如何通过batch file列出所有具有大小的文件夹所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容