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

[文件操作] [已解决]批处理如何查看某个文件的大小并显示在DOS窗口上?

[复制链接]
发表于 2011-5-21 04:51:10 | 显示全部楼层 |阅读模式
请教批处理查看文件大小并显示在DOS窗口上,如何实现

例如效果:需要修改一下:
  1. @echo off      
  2. 这里是你帮我弄的代码
  3. echo 该文件大小为: MB
  4. pause
复制代码

评分

参与人数 1PB +2 收起 理由
batman + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-5-21 07:12:32 | 显示全部楼层
变量扩展

  1. @echo off      
  2. set "testPath=%windir%\system32\ntoskrnl.exe"
  3. call:test1 "%testPath%"
  4. goto next
  5. :test1 xx
  6. echo   %%1  = %1
  7. echo   %%~1  = %~1            - 删除任何引号("),扩充 %%1
  8. echo   %%~f1 = %~f1           - 将 %%1 扩充到一个完全合格的路径名
  9. echo   %%~d1 = %~d1           - 仅将 %%1 扩充到一个驱动器号
  10. echo   %%~p1 = %~p1           - 仅将 %%1 扩充到一个路径
  11. echo   %%~n1 = %~n1           - 仅将 %%1 扩充到一个文件名
  12. echo   %%~x1 = %~x1           - 仅将 %%1 扩充到一个文件扩展名
  13. echo   %%~s1 = %~s1           - 扩充的路径只含有短名
  14. echo   %%~a1 = %~a1           - 将 %%1 扩充到文件的文件属性
  15. echo   %%~t1 = %~t1           - 将 %%1 扩充到文件的日期/时间
  16. echo   %%~z1 = %~z1           - 将 %%1 扩充到文件的大小
  17. echo   %%~$PATH:1 = %~$PATH:1   - 查找列在路径环境变量的目录,并将 %%1 扩充
  18. echo                   到找到的第一个完全合格的名称。如果环境变量名
  19. echo                   未被定义,或者没有找到文件,此组合键会扩充到
  20. echo                   空字符串

  21. echo   %%~dp1 = %~dp1                - 仅将 %%1 扩充到一个驱动器号和路径
  22. echo   %%~nx1 = %~nx1                - 仅将 %%1 扩充到一个文件名和扩展名
  23. echo   %%~fs1 = %~fs1      - 仅将 %%1 扩充到一个带有短名的完整路径名
  24. echo   %%~dp$PATH:1 = %~dp$PATH:1 - 查找列在路径环境变量的目录,并将 %%1 扩充
  25. echo                   到找到的第一个驱动器号和路径。
  26. echo   %%~ftza1 = %~ftza1      - 将 %%1 扩充到类似输出线路的 D0R
  27. echo   %%~a1 = %~a1
  28. echo\&goto:eof
  29. :next
  30. pause
  31. exit
复制代码
发表于 2011-5-21 08:15:08 | 显示全部楼层
dir和for
比如:
for /r %%a in (*) do echo %%~za
发表于 2011-5-21 10:08:33 | 显示全部楼层
本帖最后由 batman 于 2011-5-21 10:17 编辑

批版:

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1,1,30) do set "kg=!kg! "
  3. for /r %%a in (*) do (
  4.      set "str=%%~nxa%kg%"
  5.      echo !str:~,20!%%~za
  6. )
  7. pause>nul
复制代码
vbs版:

  1. For i = 1 To 30
  2.   kg = kg & " "
  3. next
  4. Set fso = CreateObject("scripting.filesystemobject")
  5. Set ws = CreateObject("wscript.shell")
  6. For Each file In fso.GetFolder(ws.CurrentDirectory & "").Files
  7.   vbstr = vbstr & Left(file.Name & kg, 20) & file.Size & vbCrLf
  8. Next
  9. Set ws = Nothing
  10. Set fso = Nothing
  11. MsgBox vbstr
复制代码
 楼主| 发表于 2011-5-21 15:16:21 | 显示全部楼层
要求是检测一个文件的大小而不是全部文件夹里的文件大小,并显示在DOS窗口上的那种
例如:
echo 该文件大小为: MB
pause
发表于 2011-5-21 15:25:24 | 显示全部楼层
dir也可以查看单文件的大小,只不过没有用for来得高效
 楼主| 发表于 2011-5-22 02:09:34 | 显示全部楼层
@echo off
for /r %%a in (vf4备注.txt) do echo %%~za
echo 文件大小为 %%~za
pause
为什么错误?
发表于 2011-5-22 02:27:58 | 显示全部楼层
楼主你可以潜阵子水好好看看基础的东西不?你一直在发贴求助,却没有得到一点提高,自己好好想想问题出在哪里。。。
 楼主| 发表于 2011-5-22 02:31:33 | 显示全部楼层
本帖最后由 wh1234567 于 2011-5-22 02:41 编辑

哎,版主,我好久没有时间学了,以前学了一点点忘了,现在需要用到可惜难住了,呵呵,你快给我一个例子吧,在线等
原文件名:1.txt
格式要求:
@echo off
你的代码
echo 文件大小为 KB
pause
最近每天都在等你们这几个高手帮我弄弄啊,
发表于 2011-5-22 06:35:33 | 显示全部楼层
这些都很基础的东西,几个小时就学会了的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 14:24 , Processed in 0.023236 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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