Board logo

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

作者: wh1234567    时间: 2011-5-21 04:51     标题: [已解决]批处理如何查看某个文件的大小并显示在DOS窗口上?

请教批处理查看文件大小并显示在DOS窗口上,如何实现

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

作者: hfg1977    时间: 2011-5-21 07:12

变量扩展
  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
复制代码

作者: cjiabing    时间: 2011-5-21 08:15

dir和for
比如:
for /r %%a in (*) do echo %%~za
作者: batman    时间: 2011-5-21 10:08

本帖最后由 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
复制代码

作者: wh1234567    时间: 2011-5-21 15:16

要求是检测一个文件的大小而不是全部文件夹里的文件大小,并显示在DOS窗口上的那种
例如:
echo 该文件大小为: MB
pause
作者: CrLf    时间: 2011-5-21 15:25

dir也可以查看单文件的大小,只不过没有用for来得高效
作者: wh1234567    时间: 2011-5-22 02:09

@echo off
for /r %%a in (vf4备注.txt) do echo %%~za
echo 文件大小为 %%~za
pause
为什么错误?
作者: batman    时间: 2011-5-22 02:27

楼主你可以潜阵子水好好看看基础的东西不?你一直在发贴求助,却没有得到一点提高,自己好好想想问题出在哪里。。。
作者: wh1234567    时间: 2011-5-22 02:31

本帖最后由 wh1234567 于 2011-5-22 02:41 编辑

哎,版主,我好久没有时间学了,以前学了一点点忘了,现在需要用到可惜难住了,呵呵,你快给我一个例子吧,在线等
原文件名:1.txt
格式要求:
@echo off
你的代码
echo 文件大小为 KB
pause
最近每天都在等你们这几个高手帮我弄弄啊,
作者: applba    时间: 2011-5-22 06:35

这些都很基础的东西,几个小时就学会了的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2