找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29073|回复: 9

[文本处理] 如何输出目录下的文件名以及大小 到文档

[复制链接]
发表于 2018-3-30 11:58:21 | 显示全部楼层 |阅读模式
如题,现在我想将文件夹内的文件名以及大小输出到文档,比如说txt,或者xls等.现在有一个代码,可以满足基本需求,但是希望可以完善一下,请各位帮忙
@echo off
(for /f "delims=" %%a in ('dir /ad /b') do (
   for /f "delims=件字 tokens=2" %%b in ('dir "%%a" /s /a ^|findstr "个文件"') do (set #s=%%b)
   call echo %%a %%#s%%
))>dest.txt
pause

这个代码输出的文件大小为字节,希望以GB为单位来显示,还有因为最后要导入到Excel中,所以希望在文件大小前加入分隔符,谢谢大家.
发表于 2018-3-30 12:13:38 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-3-30 12:17 编辑

显示GB就有点麻烦了,2G以下文件可以算术计算,2G以上只能字符串截取方法来计算了。
问一:是否都是GB级的文件?
问二:是否需要保留小数点?几位?
发表于 2018-3-30 12:38:52 | 显示全部楼层
  1. >result.csv powershell "dir|?{$_ -is [System.IO.DirectoryInfo]}|%%{'"'+$_.Name+'",'+(dir $_.FullName -r|?{$_ -is [System.IO.FileInfo]}|measure length -sum|%%{($_.sum/1gb).ToString('0.00GB')})}"
复制代码
发表于 2018-3-30 14:30:08 | 显示全部楼层
GB级别显示2.31GB这样的数字;MB级别显示23MB这样的数字;MB以下显示0MB
  1. @echo oFF

  2. for /f "delims=" %%a in ('dir /a-d/s/b') do (
  3.         call :calc_size %%~za size
  4.         setlocal enabledelayedexpansion
  5.         echo;%%a        !size!
  6.         endlocal
  7. )

  8. pause&exit
  9. :calc_size
  10. setlocal&set "var=%1"
  11. set "var=%var:~,-6%"
  12. if not "%var%"=="" set/a "GB=%var%>>10"&set/a "MB=%var%%%(1<<10)"
  13. if "%MB%"=="" set "var=0 MB"&goto:end
  14. if "%GB%"=="0" set "var=%MB% MB"&goto:end
  15. if "%MB:~1%"=="" set "MB=0%MB%"
  16. if "%MB:~2%"=="" set "MB=0%MB%"
  17. set "var=%GB%.%MB:~,2% GB"
  18. :end
  19. endlocal&set "%2=%var%"&goto:eof
复制代码
 楼主| 发表于 2018-3-30 16:23:54 | 显示全部楼层
回复 4# yhcfsr
感谢您的回复,GB小数点后面2位可以的,但是您的代码运行以后没有效果.
 楼主| 发表于 2018-3-30 16:30:13 | 显示全部楼层
回复 3# zaqmlp
您的这个代码可以,但是文件的大小显示的不全,有的文件显示了尺寸,有的没有显示.麻烦帮忙看下?
 楼主| 发表于 2018-3-30 16:31:48 | 显示全部楼层
回复 6# bear0328
好像和我的文件名有关系,我的文件名有些带有"[]"这样的符号,这样的文件名,不能显示出尺寸.
发表于 2018-3-30 16:41:48 | 显示全部楼层
回复 6# bear0328

尺寸?干嘛不说体重呢
dir -Liter $_.FullName -r
 楼主| 发表于 2018-3-30 16:54:45 | 显示全部楼层
回复  bear0328

尺寸?干嘛不说体重呢
dir -Liter  $_.FullName -r
zaqmlp 发表于 2018-3-30 16:41

大神,膜拜!!!!!
 楼主| 发表于 2018-3-30 21:37:58 | 显示全部楼层
回复 8# zaqmlp
再想麻烦一下,提供的代码排序貌似不正常,可以按照名字顺序排序么?>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:04 , Processed in 0.019762 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表