如何从win cmd获取文件大小" dir"?

时间:2015-06-24 23:53:52

标签: windows batch-file

我们假设有一个名为app.exe的文件。

dir app.exe给出:

 Volume in drive C has no label.
 Volume Serial Number is CAA5-A19C

 Directory of C:\Users\Lazy\Downloads\batch

02/06/2015  23:50        20.280.135 app.exe
               1 File(s)     20.280.135 bytes
               0 Dir(s)  100.233.252.864 bytes free

从这一切我需要文件大小(20.280.135)。理想情况下,应删除名为size.txt的文件,该文件仅包含" 20.280.135",空格和/或新行。其背后的意思是使用该文件(size.txt)作为LaTeX文档中的输入。

如何从dir命令获取文件大小?

3 个答案:

答案 0 :(得分:2)

不完全使用10060命令但您可以从DIR运行以下命令以获取文件大小

CMD

答案 1 :(得分:0)

尝试类似的东西:

@echo off
Set Size=
Set Log=Size.txt
Set PathApp=C:\Program files\Mozilla Firefox\Firefox.exe
call :filesize "%PathApp%"
echo %Size%
echo %Size% > %Log%
Pause
Start %Log%
::**************************************************************
:: set filesize of 1st argument in %size% variable, and return
::**************************************************************
:filesize
 set size=%~z1
 Exit /b 0
::**************************************************************

答案 2 :(得分:0)

保存为前。 getFileSize.cmd并称为

getFileSize.cmd "C:\Users\Lazy\Downloads\batch\app.exe" > size.txt

将生成仅带有虚线文件大小的指定文件,没有空格,回车符或换行符。

@echo off
    setlocal enableextensions disabledelayedexpansion

    rem Locate file to handle
    for %%a in ("%~1") do (
        rem Retrieve file size
        set "size=%%~za" & if not defined size set "size=0"

        rem Include dots in value
        setlocal enabledelayedexpansion
        for /l %%a in (3 4 35) do if not "!size:~0,-%%a!"=="" set "size=!size:~0,-%%a!.!size:~-%%a!"

        rem Output value without new lines
        <nul set /p"=!size!"
        endlocal
    )